2.4 KiB
| status | phase | source | started | updated | |
|---|---|---|---|---|---|
| passed | 05-finance-restyle |
|
2026-05-03T00:00:00Z | 2026-05-03T00:00:00Z |
Current Test
[all tests passed]
Tests
1. Skeleton on initial load
expected: |
Open /mobile/finance on iPhone 15 Pro (393×852). Before data arrives, FinanceSkeleton shows: 2×2 grid of skeleton tiles + 3-cell aging row + skeleton rows. Animation visible.
result: passed
2. KPI 2×2 grid + Overdue accent
expected: | Four cards: Total AR / Current / Overdue / Paid MTD. Currency rendered with zero decimals via fmt$. Overdue card has destructive (red) left border when value > 0. result: passed
3. No horizontal overflow at 360px
expected: | Resize viewport to exactly 360px wide. No content scrolls horizontally. Currency values truncate or wrap rather than push the layout. result: passed
4. Open Invoices collapsible + tab filter
expected: |
Tap "Open Invoices" — Collapsible expands. Tab toggle "Open / Overdue" filters the list. Each row uses FinanceRow with text-destructive amount tone for overdue.
result: passed
5. Recent Payments empty state + positive tone
expected: |
Tap "Recent Payments" — Collapsible expands. Payment amounts use text-emerald-600 (positive tone). When list is empty, "—" em-dash renders.
result: passed
6. No charts on Monthly Revenue
expected: | Monthly Revenue section renders as a stacked list (Month → revenue → count rows). No bars, no canvas, no chart anywhere on the page. result: passed
7. QBO sync banner + toast messages
expected: |
Tap "Sync QBO" button. Sync banner appears with progress copy. On success: toast.success("QuickBooks sync complete") fires. On failure: toast.error("Sync failed — check QBO connection") fires.
result: passed
8. Bottom nav active tab still works
expected: |
Bottom nav "Finance" tab uses text-primary when on this page. Tapping other tabs navigates correctly. (Phase 2 regression check.)
result: passed
9. Error retry card
expected: | Force a fetch error (block network). Page renders destructive-tinted card with "Failed to load finance data" + Retry button. Tapping Retry re-fetches. result: passed
10. Empty state — no outstanding AR
expected: |
When total_ar === 0, "No outstanding AR" message renders in place of the AR cards. (Verify against test data or in dev QBO.)
result: passed
Summary
total: 10 passed: 10 issues: 0 pending: 0 skipped: 0 blocked: 0