Files
jobtrackingapp/docs/redesign/phase-5/p5-15/p5-15-02/TEST_COVERAGE.md
T

4.6 KiB
Raw Blame History

P5-15-02 — Native audit coverage checkpoint

This is test/evidence work only. No application, renderer, API, schema, provider, production configuration or deployment behavior changes. Source cf847e9b256d9aec733abf3f37c42852c9dd2421; development branch codex/ui-redesign-phase4.

New independently runnable coverage

Test file / case Contract exercised Evidence limitation
responsive-accessibility-audit.spec.ts: thirteen-area collection Synthetic owned native SQLite/API entries, loaded content, responsive geometry, actual ARIA tree, all enabled axe rules plus explicit WCAG2.2 target-size, screenshots Collection success is not accessibility acceptance; rule findings are retained rather than asserted away
Reduced-motion mobile drawer Keyboard opening, expected initial focus, Escape return; records active element before/after axe and optional Tab recovery Real keyboard automation, not a human reader
Command/workspace/CV keyboard Command focus/empty result/Escape, Add dialog, manual-activation Job tabs, CV section selection, persisted keyboard reorder, preview entry/end-scroll/exit Finite paths, not every field/menu or reader announcement
Landscape text-spacing collection Six areas at844×390 with WCAG text-spacing overrides Parent app styles only; verified document iframe geometry is untouched
CV source action Actual keyboard activation of Open Career Profile, destination and native source content Does not replace source/override revision safety tests
Upload/import keyboard Focus and Enter/Space on three real controls; positive pointer comparison to the same native file picker No file data submitted; no synthetic success response
Emulated touch CV edit/preview, portrait/landscape CSS viewport changes, unchanged persisted CV, drawer Escape Chromium touch emulation; not native hardware, orientation sensor or software keyboard
browser-zoom-audit.spec.ts: English/light and Bokmål/dark Actual Chromium tab zoom100/200/400%; asserts browser zoom, DPR and unchanged pinch scale;13 areas plus text-spacing geometry Geometry collection is not proof every enabled action is reachable/readable; other browsers/manual vision and hardware remain open

Nine ordinary browser cases are added (seven responsive/keyboard cases, two zoom cases). They are not skipped, quarantined, expected-failing or retried. Soft assertions keep known failures failing while collecting additional evidence. No provider requests leave loopback.

Focused execution before the coverage commit

Native proof retains source-report hashes, test statuses and actual observations. The six-case development audit after separating the drawer from other workflows had 2 passes /4 failures; one failure was a test assumption: arrows move Job-tab focus, Enter activates. The corrected existing manual-activation contract then passed with command/dialog/CV keyboard checks in the three-case controls rerun (1 pass /2 failures).

The two remaining controls failures are genuine: source action goes to unsupported /career/profile (404), and all six Enter/Space picker attempts fail while all three pointer comparisons succeed. No upload/import data was written. The reduced-motion drawer evidence shows focus still on the hidden background trigger before and after axe; immediate Escape leaves the drawer open. Tab plus Escape can close it, but focus lands on another background button rather than returning to the navigation trigger. Emulated CV mode/portrait-landscape/readback succeeds before the same drawer-return assertion fails.

Genuine zoom collection 2/2 passes,102 geometry observations. Earlier zoom harness attempts are retained locally: explicit deviceScaleFactor:undefined is required with viewport:null; Correspondence has two actual H1s, so readiness now identifies its intended inbox heading exactly while still recording both headings. Those harness corrections do not close product heading/manual-review issues. Earlier metadata incorrectly implied tag-only axe selection: installed builder .options() replaces earlier .withTags() options. The committed collector correctly declares all enabled rules, including best practices; per-rule tags distinguish them from WCAG failures.

App and E2E TypeScript, lint and whitespace checks pass. Complete ordinary regression and final rule/viewport/57-group reconciliation are separate pending audit evidence at this commit; neither the previous134 passes nor collection success is used to claim this audit green. Production remains NO-GO. P5-13 remains deferred, unqualified and Production-withheld; no UI/qualification/Docker work.