Why
The line between user-facing text and code (CSS classes, x === "system", routes) is heuristic. A growing set of small .tsx fixtures locks in correct behavior so future changes do not regress.
Task
- Add
.tsx snippets under examples/fixtures/, each exercising one tricky case (a className ternary, a comparison operand, a template with a plural suffix, an aria-label, ...).
- Extend
test/run.mjs to assert the expected extracted set for each.
Good first PR
Even one new fixture + assertion is valuable. If you find a case where extract gets it wrong, that is a bug — open it and (bonus) fix src/heuristics.mjs.
Why
The line between user-facing text and code (CSS classes,
x === "system", routes) is heuristic. A growing set of small.tsxfixtures locks in correct behavior so future changes do not regress.Task
.tsxsnippets underexamples/fixtures/, each exercising one tricky case (aclassNameternary, a comparison operand, a template with a plural suffix, anaria-label, ...).test/run.mjsto assert the expected extracted set for each.Good first PR
Even one new fixture + assertion is valuable. If you find a case where
extractgets it wrong, that is a bug — open it and (bonus) fixsrc/heuristics.mjs.