test(folio): replace tautological properties with 4 domain invariants (#28)

* test(folio): replace tautological properties with 4 domain invariants

Drop properties that can't fail (e.g. List.size >= 0, balances are Long
integers) or that just check the extractor itself (account_count equals
accounts.length). Keep auth routing liveness, error-clear liveness, and
reachability goals.

Add four properties that target the real code paths:
- balanceMatchesTransactionDelta: a new ledger row shifts the balance
  by exactly its signed amount (credit +, debit -).
- totalEqualsSumOfAccounts: home total equals sum of per-account
  balances at every state, not only on home.
- balanceChangeRequiresActiveAccount: an account's balance can only
  change while that account is the active one in the navigator.
- duplicateAccountNamesRejected: account names are unique under the
  app's actual dedup rule (case-insensitive after trim).

* chore(folio): upgrade sdk-android to io.github.priyanshujain.sanderling:0.0.1-rc4

Group id moved from io.github.priyanshujain to
io.github.priyanshujain.sanderling in the rc4 publish.

* chore(folio): pin @sanderling/spec to 0.0.1-rc4
This commit is contained in:
pj authored and GitHub committed 2026-04-21 17:53:55 +07:00
1 parent 75780db3fa
commit faebfe379d
4 files changed
+45 -130

No files matched your search

+1 -1
View File
@@ -7,4 +7,4 @@ android.nonTransitiveRClass=true
# Pin the sanderling SDK version consumed by this app. Override with
# `-Psanderling.version=<version>`.
sanderling.version=0.0.0-dev
sanderling.version=0.0.1-rc4