# PR #390 — Test checklist

Bundled tickets: **NAN-453** (Balance sheet 3 buckets) + **NAN-451** (Financials flicker fix).

EAS preview deep-link:
`nanostreet-dev://expo-development-client/?url=https%3A%2F%2Fu.expo.dev%2F5fff892f-218c-4b1c-bd29-bf8b0551d675%3Fbranch%3Dpr-390%26runtime-version%3D1.0.1`

> Use a ticker with full coverage (AAPL or MSFT recommended) for AC coverage; spot-check a thin ticker (SPY/QQQ ETF) for empty-bucket behavior.

---

## NAN-453 — Balance sheet 3 expandable sections

### AC1 — DTO parses new shape
- [ ] Open Stock Detail → Financials → Balance Sheet for AAPL. No Zod parse error in console (`console.warn`/`console.error` clean).
- [ ] Spot-check another ticker (TSLA) — same.

### AC2 — 3 sections rendered with bucket labels
- [ ] Balance Sheet card shows three labelled sections in order: **Assets**, **Liabilities**, **Equity**.
- [ ] On a ticker with no equity data (rare; try a recently IPO'd ticker or ETF), Equity section is hidden — only Assets + Liabilities visible.
- [ ] Each section header shows its bucket name + chevron.
- [ ] No legacy 2-tab switcher (Assets/Liabilities) anywhere on the screen.

### AC3 — Independent expand/collapse
- [ ] Initial state: Assets expanded, Liabilities collapsed, Equity collapsed.
- [ ] Tap Liabilities header → expands; Assets stays expanded; Equity stays collapsed.
- [ ] Tap Equity header → expands; Assets + Liabilities states unchanged.
- [ ] Tap Assets header → collapses; Liabilities + Equity states unchanged.
- [ ] No shared activeTab state — confirmed by collapsing all 3 and seeing each stay collapsed.

### AC4 — Breakdown screen bucket grouping
- [ ] Tap "See more" on Balance Sheet → opens BalanceSheetBreakdownScreen.
- [ ] Screen shows three styled bucket headers (Assets / Liabilities / Equity) with a FinancialBreakdownTable under each.
- [ ] Rows are no longer one flat concatenated table.
- [ ] Empty buckets are skipped (no header for a 0-row bucket).
- [ ] Per-bucket table heights look sensible (no clipped rows, no excess empty space).

### AC5 — Mapper test
- [ ] `pnpm test --testPathPattern=financialsMapper` passes (includes new `mapBalanceSheetDtoToDomain` block: happy path + empty equity case).

### AC6 — Merge order coordination
- [x] Backend #545 already merged 2026-05-18 → API shape is live. No staging risk.

### AC7 — iOS dev-client smoke
- [ ] Loads against staging via EAS preview deep-link, no crash on opening Balance Sheet card.
- [ ] Loads against staging on Balance Sheet **breakdown** screen, no crash.

---

## NAN-451 — Financials tab flicker

### AC1 — Reproduce flicker on iOS dev-client (regression baseline)
- [ ] On `main` (pre-fix) build, tap into a stock → tap Financials tab. Observe a 1-2 frame white/blank flash during the tab-switch animation.

### AC2 — Root cause identified
- [x] Root cause: `financials` was the only heavy tab NOT wrapped in `LazyTab` in `StockDetailTabs.tsx`. It mounted synchronously during the tab animation, blocking JS thread mid-transition.

### AC3 — Flicker eliminated
- [ ] On pr-390 build, tap Financials tab → see `TabSkeleton` smoothly, then `FinancialsLoadingSkeleton`, then content. NO white/blank flash.
- [ ] Switch between Financials and other tabs (Overview / Earnings / Key Metrics) 5-10x — no flicker on Financials entry.
- [ ] Background and re-foreground the app while on Financials → no flicker on resume.

### AC4 — No regression in skeleton / data freshness
- [ ] Tab opens with skeleton visible (TabSkeleton then FinancialsLoadingSkeleton), not blank.
- [ ] Data loads within expected window (~1-2s on warm staging).
- [ ] Pull-to-refresh (if available on Financials) still refreshes data.
- [ ] No double-fetch in dev tools / network panel.
- [ ] Skeleton-to-content swap is seamless (no layout jump).

---

## Cross-cutting regression checks

- [ ] No regression on **other Stock Detail tabs**: Overview, Earnings, Key Metrics, Management, Valuation, News Sentiment, Analyst Forecasts, Smart Score (each opens cleanly with its existing skeleton + content).
- [ ] No regression on **Income Statement / Cash Flow** sections inside Financials (same shape as before, separate from Balance Sheet bucket changes).
- [ ] `pnpm check` clean locally (typecheck + lint + tests).
- [ ] No console warnings/errors on dev build for any covered tab.

---

## Sign-off

- [ ] All AC checked above
- [ ] Visual evidence attached to PR (screenshots of: 3 sections collapsed, Assets expanded only, all 3 expanded, breakdown screen with headers, no flicker GIF if possible)
- [ ] Ready to flip from DRAFT
