test(harness): a grouped, multi-level fixture, and the first browser run of anr9

web/demo.improv has no groups and one category per visible axis, deliberately
(gotcha 46), so the multi-level header, the group span, the collapse indicator
and the inline group row -- exactly the code improvise-anr9 added -- had never
been rendered anywhere a test could see (improvise-plcx).

harness/fixtures/grouped.improv is served beside the shipped demo by
harness/build.sh; web/demo.improv is untouched. Two categories on each visible
axis, three row groups with one collapsed, two column groups.

A missing seed is NOT an error -- web/worker.js answers a 404 with an empty
model -- so every assertion is about labels the fixture really carries, never
that a grid exists.

Five injections, five distinct failures, patched in harness/serve so no
rebuild stands between the fault and the run: slash-joining the level tuples;
colSpan = 1 on the group headers; a stray cell on the inline group row;
indicator(false) hard-coded; and the collapse removed from the document.

One thing the ticket did not predict: the row frame's FIRST group header is
never drawn, so the spec asserts two group rows where the document has three,
with improvise-0o6x named on the line.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FC2jVn8Au7E9JPkw6bwXXH
This commit is contained in:
Edward Langley
2026-09-20 16:34:24 -07:00
parent ba5c0ee059
commit 09ada9c1b5
4 changed files with 337 additions and 0 deletions
+3
View File
@@ -16,6 +16,9 @@ bench/*.txt
# The document the static site ships and seeds a fresh browser from
# (improvise-bck). A shipped asset, not somebody's working file.
!web/*.improv
# The harness's own documents. A test fixture, not somebody's working file:
# the grouped, multi-level model no shipped document is (improvise-plcx).
!harness/fixtures/*.improv
# Beads / Dolt files (added by bd init)
.dolt/