diff --git a/docs/plans/2026-10-12_pm-test-fixes.md b/docs/plans/2026-10-12_pm-test-fixes.md index ae867dfab..dff83c098 100644 --- a/docs/plans/2026-10-12_pm-test-fixes.md +++ b/docs/plans/2026-10-12_pm-test-fixes.md @@ -239,3 +239,62 @@ the machine scan. A Board for other businesses. Darkwing approves on the row's issue, naming the candidate manifest. The suites above pass on Sage's gate rerun. Live after the Console restart Mos approves. + +## Row 95 follow-up: Board tests fail fast, README lists every redirect + +### Problem + +Darkwing's review of row 95 (comment 27953, approve) left three notes, +and row 95 landed in 17ad6f35 without a second round. + +- N1: `packages/webui/tests/browser-edge.test.mjs` awaits + `boardRequested` (line 29), which only the server's `/api/board` + handler resolves. If the "Show machine sessions" toggle stops reading + the board, the await never settles. The test is cancelled at 120 s, + its `finally` never closes the browser and server, and the file never + exits. `node --test` has no file timeout, so the webui suite stalls + instead of failing. +- N2: test 2 in `board-held.test.mjs` claims no further request on the + poll, but it waits 600 ms and both polls are 10 s. Mutants 13 and 27 + survive for that reason. +- N3: the webui README's test paragraph says test 2 redirects three + reads. It redirects six: the board, `agents`, `/api/conversations`, + `/api/seen`, `/api/queue` and the send. + +### Owner and reviewer + +Owner: assigned on the row. Reviewer: Darkwing. + +### Files owned + +- `packages/webui/tests/browser-edge.test.mjs`, + `packages/webui/tests/board-held.test.mjs`, and any test helper they + share +- `packages/webui/README.md`, the test paragraph only +- `agents//work/queue-/` + +### What ships + +- N1: the toggle step in `browser-edge.test.mjs` fails within a few + seconds when no `/api/board` request comes, and the browser and + server close either way. Prove it with the toggle-on mutant: the file + exits nonzero inside 30 s, with no browser or node process left. +- N2: either test 2 reaches a poll tick, by a shorter poll in the test + or a clock the test controls, and mutants 13 and 27 die; or the + test's comment and the README stop claiming the poll. The packet says + which, and why. +- N3: the README's test paragraph names all six redirected requests. + +Suites: the webui and control-board node suites, and every +`scripts/test-*.sh`. + +### Out of scope + +Any change under `packages/webui/src/`. Row 95's behavior stays as +landed. + +### Gate + +Darkwing approves on the row's issue, naming the candidate manifest. +The suites above pass on Sage's gate rerun. Tests and README only, so +nothing goes live and no restart is involved.