wulf-pulse/.planning/phases/05-finance-restyle/05-HUMAN-UAT.md

2.4 KiB
Raw Blame History

status phase source started updated
passed 05-finance-restyle
05-VERIFICATION.md
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

Gaps