From 3ac0509e96fc5e11fcc5c956f868b54d7ef14a6a Mon Sep 17 00:00:00 2001 From: null Date: Sun, 5 Jul 2026 11:06:15 -0500 Subject: [PATCH] docs(qa): retarget QA_PLAN recon/census to .tsx after the TS migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The living QA doc's copy-pasteable coverage-recon greps pointed at client/App.jsx, Sidebar.jsx, .jsx and the B-UI primitive census listed button.jsx/input.jsx/etc — all now .tsx, so the commands errored ('No such file'). Retargeted to .tsx (+ useAutoSave.test.ts) and noted that recon greps target .tsx and 'npm run typecheck' is now a guard. Behavior-only migration: client 42/42 + e2e probe 17/17 stay green. Co-Authored-By: Claude Opus 4.8 --- docs/QA_PLAN.md | 40 +++++++++++++++++++-------------------- e2e/critical-path.spec.js | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/docs/QA_PLAN.md b/docs/QA_PLAN.md index 1011d1b..e6917ac 100644 --- a/docs/QA_PLAN.md +++ b/docs/QA_PLAN.md @@ -1,6 +1,6 @@ # BillTracker — Master QA Plan (living document) -**Version target:** v0.41.x · **Executor:** Claude (active) · **Last updated:** 2026-07-02 +**Version target:** v0.41.x · **Executor:** Claude (active) · **Last updated:** 2026-07-05 **Cycle 1: COMPLETE ✅** — all 18 batches (B0→B16 + B-UI) run; **15 findings fixed**, verified & archived (3× S2); automated re-run of existing batches clean (0 new); the added **B16** (migrations/secrets/deploy) surfaced + fixed 1 (version-check opt-out). Guard suite green. External-infra items (live TOTP/WebAuthn/OIDC, SMTP delivery, cross-browser, PWA-offline, load, container build) carried to Cycle 2 as non-blocking. This is a **living, operational** QA document, not a static spec. Claude runs it, @@ -362,15 +362,15 @@ and folded in **before** testing, so coverage never silently rots. **Coverage recon — enumerate the *actual* product and diff it against this plan.** Run these, then compare the output to the batch playbooks (§7) and the [route map](#appendix-c--page--route--api-quick-map): -- [ ] **Client routes** — `grep -nE ".jsx` + `grep -n "onClick=\|.jsx`. +The completeness ledger behind "every button, textbox, slider is right." Fill one table **per page** during [B0](#b0--baseline-tooling--coverage-recon) and check every control off during that page's batch. A control not listed here is a control not tested. Build the starting list with `grep -rnoE "type=[\"'][a-z]+[\"']" client/pages/.tsx` + `grep -n "onClick=\|.tsx`. **Template** (copy per page): diff --git a/e2e/critical-path.spec.js b/e2e/critical-path.spec.js index 411a69a..9d16be4 100644 --- a/e2e/critical-path.spec.js +++ b/e2e/critical-path.spec.js @@ -4,7 +4,7 @@ // Selectors are grounded in real DOM (no test-ids exist yet): // - quick-pay: StatusBadge button, title "Click to mark paid" / "...unpaid" // - bills: seeded names from scripts/seedDemoData.js (e.g. "Electric Company") -// - nav: sidebar link labels from client/components/layout/Sidebar.jsx +// - nav: sidebar link labels from client/components/layout/Sidebar.tsx const { test, expect } = require('@playwright/test'); const { STORAGE_STATE } = require('./constants');