Files
computer-playbook/tests
kevinveenbirkenbachandClaude Opus 5 40173e8266 test(lint): compare the async/poll gate, not the word omit
The rule checked whether both keys contain the token `omit`. That catches the
Ollama shape, where async carried no omit at all, but it does not enforce what
the failure message claims: two keys can both carry omit and still hang on
different switches, and the old check passed that.

_gate() now reads the switch each key states inline - the test of an
`if ... else omit`, or the left side of a `| ternary(..., omit)` - and the two
must match. A key that names no gate matches another that names none, which is
the shape sys-service and the canonical ASYNC_TIME/ASYNC_POLL pair use; both
then inherit whatever their variables do. An unrecognised omit-bearing form
falls into a single bucket, so it only matches another unrecognised form.

Checked against all five shapes in the tree: the pre-fix Ollama pair is an
offender, the fixed pair and the ternary and bare-variable pairs are not, and
two different conditions are now an offender where the token check passed them.

The rule still does not catch two ungated keys whose variables diverge. That is
deliberate: group_vars makes ASYNC_TIME evaluate to omit while ASYNC_POLL stays
numeric, and a poll without async is ignored.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 18:00:42 +02:00
..
…
…

Tests 🧪

All automated tests for Infinito.Nexus live here.

Directory Type Guide
unit/ Unit tests (isolated, no I/O) unit.md
integration/ Integration tests (real component boundaries) integration.md
external/ Opt-in live third-party checks, excluded from make test external.md
e2e/ End-to-end Playwright tests playwright.md
regression/ Regression guard rules regression.md
lint/ Structural lint checks lint.md

Run each suite via the make targets documented in the linked guides.