test: unify frontend test runs and prevent inventory drift - #1965
Conversation
|
Reviewed and I want this in. It needs a rebase first, on exactly the overlap you predicted. #1964 is merged ( Both are additive on master's side, so the resolution should be: keep your new structure, make sure What I checked while it was still applying cleanly: #1858 is genuinely still open. #1895 unstuck The runtime cost is acceptable, measured rather than assumed. Running 163 suites instead of 65 puts The part I value most is the inventory self-check. A test list that can silently omit a suite is worse than no list, because it reports green for tests nobody ran. Making omissions, duplicates, stale paths and missing prerequisites fail the run is the thing that keeps this fixed after everyone forgets why. Push the rebase and I will merge it. If the resolution turns out to be more than mechanical, say so here rather than forcing it. |
npm testand CI maintained different frontend test lists, leaving stale assertions and working regression gates outside CI. Maketest-all.shthe authoritative standalone list for npm and CI, restore 19 stale test/harness files to the current SVG, CSS and application behavior, and add an inventory guard for every roottest-*.jsfile.Fixes #1858.
The runner now executes 163 standalone suites, including all 65 previously selected by the CI unit step. The inventory accounts for 275 root suites and rejects missing, duplicate, stale or undocumented classifications. Browser suites retain their existing E2E setup and selection. The E2E workflow section and all later jobs are unchanged.
Validation:
npm testand the standalone runner pass all 163 suites, independently rerun after implementation.Remaining coverage limits are documented in
docs/frontend-testing.md: 107 scripts require browser setup, four require the currently undeclared Playwright test runner, and one requires undeclared jsdom. Eighteen existing non-unit suites remain outside CI. Inventory membership records prerequisites; it is not a claim that every browser suite is validated. The npm coverage report currently measuresurl-state.js, not total frontend coverage.Following #1922, this test-infrastructure repair is separate from the runtime and release fixes. It overlaps PR #1964 in
test-all.shand the CI unit-test step: merge #1964 first, then retaintest-issue-1956-release-routing.jsin this authoritative runner when rebasing this PR. Review current Go and E2E job results separately from workflow-approval or staging-runner state.