Files

35 lines
2.2 KiB
JSON

{
"$comment": [
"QUARANTINE MANIFEST for the harness unit suite's CI gate.",
"",
"WHY THIS FILE EXISTS. Until the `test / unit-showcase` workflow landed,",
"NO CI job ran `showcase/harness`'s ~3.6k-test vitest suite (see that",
"workflow's header for the full ground-truth table). Wiring it up found the",
"suite already RED on `origin/main` with exactly three failures. A newly",
"added job that is red on arrival gets ignored or deleted, so those three",
"files are quarantined HERE — explicitly, in source, with a reason and a",
"date — instead of being silently deleted or weakened.",
"",
"THIS IS NOT A HOLE IN THE GATE. `scripts/quarantine-ratchet.ts` runs the",
"quarantined files in their OWN vitest invocation and requires each one to",
"STILL FAIL. The moment somebody fixes a quarantined test, the ratchet goes",
"red and forces its removal from this list. A quarantine entry can therefore",
"never outlive the failure it excuses.",
"",
"TO ADD an entry you must be able to state the reason and the exit criterion.",
"TO REMOVE one, fix the test and delete its object — the ratchet will tell",
"you if you forgot.",
"",
"`file` paths are relative to `showcase/harness/` and must match the path",
"vitest reports, so that the exclude glob and the ratchet agree."
],
"quarantined": [
{
"file": "src/probes/frontend-matrix.test.ts",
"since": "2026-07-24",
"reason": "Asserts hard-coded per-frontend cell counts (react=660, angular=636) against `shell/src/data/frontend-catalog.json`, which is a GENERATED artifact. The catalog has since grown to 1302 runnable cells (react=664, angular=638), so the two literals are stale and the test fails with 'expected [ Array(664) ] to have a length of 660'. Not a product defect — the two assertions that actually express the test's stated intent ('without loss or duplication': length === metadata.runnable, and ids are unique) both PASS.",
"unquarantineWhen": "The per-frontend expectations are derived from the catalog instead of hard-coded, so adding a demo cell no longer breaks the test. Re-hard-coding fresh numbers only resets the clock — this test will drift again on the next catalog change."
}
]
}