mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-04 20:17:09 +00:00
chore(folio): name every extract() call
Give each extractor in the Folio spec a debuggable label so the inspect UI can render extractor-value diffs at violation steps keyed by intent (ledgerRows, route, ledgerBalance, ...) rather than by registration index.
This commit is contained in:
1 parent
1b35e5a6a6
commit
07c292913c
1 file changed
+15
-15
@@ -32,8 +32,8 @@ function parseDollarCents(text: string | undefined): number {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Route detection via testTag (resource-id on Android, accessibilityIdentifier on iOS)
|
// Route detection via testTag (resource-id on Android, accessibilityIdentifier on iOS)
|
||||||
const loggedIn = extract(s => s.ax.find({ testTag: "LoginScreen" }) == null);
|
const loggedIn = extract("loggedIn", s => s.ax.find({ testTag: "LoginScreen" }) == null);
|
||||||
const route = extract<string | null>(s => {
|
const route = extract<string | null>("route", s => {
|
||||||
if (s.ax.find({ testTag: "LoginScreen" })) return "login";
|
if (s.ax.find({ testTag: "LoginScreen" })) return "login";
|
||||||
if (s.ax.find({ testTag: "AddAccountScreen" })) return "add-account";
|
if (s.ax.find({ testTag: "AddAccountScreen" })) return "add-account";
|
||||||
if (s.ax.find({ testTag: "AddTransactionScreen" })) return "add-transaction";
|
if (s.ax.find({ testTag: "AddTransactionScreen" })) return "add-transaction";
|
||||||
@@ -43,41 +43,41 @@ const route = extract<string | null>(s => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Account cards on Home: identity is the AccountName text; balance comes from AccountBalance.
|
// Account cards on Home: identity is the AccountName text; balance comes from AccountBalance.
|
||||||
const accounts = extract<Account[]>(s =>
|
const accounts = extract<Account[]>("accounts", s =>
|
||||||
s.ax.findAll([{ testTag: "HomeScreen" }, { testTag: "AccountCard" }]).map(card => ({
|
s.ax.findAll([{ testTag: "HomeScreen" }, { testTag: "AccountCard" }]).map(card => ({
|
||||||
name: card.find({ testTag: "AccountName" })?.text ?? "",
|
name: card.find({ testTag: "AccountName" })?.text ?? "",
|
||||||
balance: parseDollarCents(card.find({ testTag: "AccountBalance" })?.text),
|
balance: parseDollarCents(card.find({ testTag: "AccountBalance" })?.text),
|
||||||
})));
|
})));
|
||||||
|
|
||||||
// Ledger rows: identity composed from the row's stable testTag'd cells.
|
// Ledger rows: identity composed from the row's stable testTag'd cells.
|
||||||
const ledgerRows = extract<LedgerRow[]>(s =>
|
const ledgerRows = extract<LedgerRow[]>("ledgerRows", s =>
|
||||||
s.ax.findAll([{ testTag: "LedgerScreen" }, { testTag: "LedgerRow" }]).map(row => ({
|
s.ax.findAll([{ testTag: "LedgerScreen" }, { testTag: "LedgerRow" }]).map(row => ({
|
||||||
key: keyedBy(row, ["TxnDate", "TxnNote", "TxnAmount"]),
|
key: keyedBy(row, ["TxnDate", "TxnNote", "TxnAmount"]),
|
||||||
signed: parseDollarCents(row.find({ testTag: "TxnAmount" })?.text),
|
signed: parseDollarCents(row.find({ testTag: "TxnAmount" })?.text),
|
||||||
})));
|
})));
|
||||||
|
|
||||||
const ledgerBalance = extract(s =>
|
const ledgerBalance = extract("ledgerBalance", s =>
|
||||||
parseDollarCents(s.ax.find({ testTag: "LedgerBalance" })?.text));
|
parseDollarCents(s.ax.find({ testTag: "LedgerBalance" })?.text));
|
||||||
|
|
||||||
const loginEmailField = extract(s =>
|
const loginEmailField = extract("loginEmailField", s =>
|
||||||
s.ax.find([{ testTag: "LoginScreen" }, { testTag: "LoginEmail" }]));
|
s.ax.find([{ testTag: "LoginScreen" }, { testTag: "LoginEmail" }]));
|
||||||
const loginPasswordField = extract(s =>
|
const loginPasswordField = extract("loginPasswordField", s =>
|
||||||
s.ax.find([{ testTag: "LoginScreen" }, { testTag: "LoginPassword" }]));
|
s.ax.find([{ testTag: "LoginScreen" }, { testTag: "LoginPassword" }]));
|
||||||
const loginSubmit = extract(s =>
|
const loginSubmit = extract("loginSubmit", s =>
|
||||||
s.ax.find([{ testTag: "LoginScreen" }, { testTag: "LoginSubmit" }]));
|
s.ax.find([{ testTag: "LoginScreen" }, { testTag: "LoginSubmit" }]));
|
||||||
const addAccountButton = extract(s =>
|
const addAccountButton = extract("addAccountButton", s =>
|
||||||
s.ax.find([{ testTag: "HomeScreen" }, { testTag: "AddAccountButton" }]));
|
s.ax.find([{ testTag: "HomeScreen" }, { testTag: "AddAccountButton" }]));
|
||||||
const accountNameField = extract(s =>
|
const accountNameField = extract("accountNameField", s =>
|
||||||
s.ax.find([{ testTag: "AddAccountScreen" }, { testTag: "AccountNameField" }]));
|
s.ax.find([{ testTag: "AddAccountScreen" }, { testTag: "AccountNameField" }]));
|
||||||
const addAccountSubmit = extract(s =>
|
const addAccountSubmit = extract("addAccountSubmit", s =>
|
||||||
s.ax.find([{ testTag: "AddAccountScreen" }, { testTag: "AddAccountSubmit" }]));
|
s.ax.find([{ testTag: "AddAccountScreen" }, { testTag: "AddAccountSubmit" }]));
|
||||||
const addTxnButton = extract(s =>
|
const addTxnButton = extract("addTxnButton", s =>
|
||||||
s.ax.find([{ testTag: "LedgerScreen" }, { testTag: "AddTransactionButton" }]));
|
s.ax.find([{ testTag: "LedgerScreen" }, { testTag: "AddTransactionButton" }]));
|
||||||
const txnAmountField = extract(s =>
|
const txnAmountField = extract("txnAmountField", s =>
|
||||||
s.ax.find([{ testTag: "AddTransactionScreen" }, { testTag: "TxnAmountField" }]));
|
s.ax.find([{ testTag: "AddTransactionScreen" }, { testTag: "TxnAmountField" }]));
|
||||||
const txnSubmit = extract(s =>
|
const txnSubmit = extract("txnSubmit", s =>
|
||||||
s.ax.find([{ testTag: "AddTransactionScreen" }, { testTag: "TxnSubmit" }]));
|
s.ax.find([{ testTag: "AddTransactionScreen" }, { testTag: "TxnSubmit" }]));
|
||||||
const accountCards = extract(s =>
|
const accountCards = extract("accountCards", s =>
|
||||||
s.ax.findAll([{ testTag: "HomeScreen" }, { testTag: "AccountCard" }]));
|
s.ax.findAll([{ testTag: "HomeScreen" }, { testTag: "AccountCard" }]));
|
||||||
|
|
||||||
// Property 1: every newly-appearing account starts with balance === 0.
|
// Property 1: every newly-appearing account starts with balance === 0.
|
||||||
|
|||||||
Reference in new issue
Block a user