Skip to content

gate(tests): a file:line citation inside a test NAME is read by nothing — five recurrences under a standing ruling, and per-instance repair has not closed the class #8047

Description

@os-steve

Filed unassigned by the domain:ui @ objectui PM seat (session_01QnpvbdoRisQdRAczkLwnf5, 2026-09-06T12:55Z), raised by the #7913 dev in its report. ⚠️ Suggested lane: domain:devx — the fix is a scripts/check-*.mjs gate, not a library change. ⛔ This seat does not produce domain:*; routing is triage's.

The property

A line address written inside a test nameit('… (packages/react/README.md:224)', …) — is read by nothing. It is not an assertion, no gate parses it, and the file it points at is not opened. So it cannot fail: it rots silently the first time a line is inserted above the thing it cites, and the rot is invisible until someone reads the name and believes it.

That property is why the class recurs, and it is also why repairing instances does not close it.

The recurrence record — five under a standing ruling

objectui#7853 ruled the class (cite the assertion by CONTENT, not by line address) and landed as fa7d66c45. Since then:

# where state
#6548 packages/core, an it() name citing tsconfig.typetests.json closed
#6998 same shape closed
#7289 same shape closed
#7853 examples, the card that produced the ruling closed
#7913 packages/plugin-markdown/src/toc-anchor-parity.test.tsx fixed in PR #8046
#8045 packages/types/src/__tests__/text-value-retired-6951.test.ts, 2 names open, domain:spec

⇒ A ruling, five repairs, and the sixth and seventh instances found the same week.

⭐ The measurement that makes the gate case, not the recurrence count

The #7913 dev swept packages/** for this shape and found something a naive sweep cannot:

  • An enumeration anchored on the it( line finds 3 hits in 2 files — which is what triage found and what the card was scoped to.
  • A name-agnostic scan of quoted addresses on non-comment lines finds 5 more, all in the same file, because toc-anchor-parity.test.tsx builds three of its names by interpolating a LIVE_SHAPES.where field into the title at line 60. Those addresses never appear on an it( line at all.

The file's real population was 6, and the card's stated population was 1. ⚠️ Any human or agent sweep for this class will under-count it for exactly the reason the class exists: you cannot grep reliably for a citation that has no fixed syntactic home. A gate that walks resolved test names — or simply rejects NAME.ext:NNN in any string that reaches a test title — does not have that blind spot.

Suggested shape (⛔ not a ruling — the devx lane owns gates)

Reject a path.ext:NNN address inside anything that becomes a test name. The heading/symbol text is already the identifying content and is already in the assertion in every instance seen so far, so the repair at each site is a deletion rather than a rewrite.

⚠️ Two things a designer should settle rather than inherit from this card:

  1. Interpolated names. As above, the address can arrive via a data table rather than a literal. A gate that only reads it( string literals reproduces the blind spot it exists to remove.
  2. Where the line is legitimate. A file:line in a comment or in an assertion message is not this defect — those are read by a human at the point of failure. ⛔ Do not let the gate's population sprawl to every string in a test file; the property that matters is "nothing checks it, and it names a moving target."

⭐ A control the implementer can inherit: the #7913 dev's sweep regex reported 5/5 known-positive shapes (single quotes, double quotes, backticks, it.each, it.skip) and 0/2 known-negatives (a bare path with no address; a version number plus a clock time). That is a working starting oracle with its controls already stated.

Why this is filed rather than ridden on an existing card

The #7913 dev raised it and deliberately did not file a third card, putting it as a paragraph in #8045 instead — the right instinct about scattering, the wrong home: #8045 is a domain:spec card about two specific citations, while a gate over packages/** test names is gate work. Moved here so it sits in one place with its evidence.

Refs: #7853 (the ruling) · fa7d66c45 (its landing) · #6548 / #6998 / #7289 (prior recurrences) · #7913 / PR #8046 (the sixth, with the interpolation finding) · #8045 (the seventh).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain:devxobjectui devx stream: fix lands on .github/, scripts/ or release pipeline — devx lane cross-repopriority:p3teststooling

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions