Skip to content

v1.2.0 — node-test + tsx adapters (closes the 5-repo unit-half gap)

Latest

Choose a tag to compare

@GmanFooFoo GmanFooFoo released this 27 Jul 13:10
eff3ddb

node-test + tsx adapters — closes the gap that dropped 5 repos' unit halves

Additive to v1.1.0. No breaking changes; existing runners: lines keep working unchanged.

New runner handlers

  • node-test — parses the node --test (node:test) summary reporter, both shapes: # pass N (TAP, node 20) and ℹ pass N (spec, node 22+). It reads the summary, never the ok-lines, so a run with 3 ok-lines and fail 1 in its summary is correctly counted and flagged red.
  • tsx — parses bespoke tsx / node:assert harnesses (the estate's website unit suites). Sums multiple unlabeled summary lines across chained invocations (tsx a && tsx b && tsx c) and ignores interleaved noise.

Both handlers are fail-closed: output with no parseable summary exits non-zero rather than silently emitting a zero.

Why this matters

Five repositories' unit halves were counted as 0 before these handlers existed — the emitter had no adapter for their runner families, and a missing adapter looked exactly like an empty suite. This release makes those halves visible.

Also in this release

  • no-silent-zero guard: a GREEN run that parses 0 tests from non-empty output now exits non-zero. A RED run parsing 0 still emits (red:true) and never dies — a broken suite must not become an invisible suite.
  • Golden fixture D (goldoni): total 35 = e2e 20 + unit 15 (6 node-test + 9 tsx), regression-locked.
  • Red fixtures for both new handlers.

Verification

40/40 bats assertions green, shellcheck clean on emit-test-stats.sh + tests/validate-schema.sh, schema validation of golden A/B/C passing, CI green on the release commit.

Consumers

v1 is re-pointed to this release. Consumers pinning @v1 pick the adapters up on their next run; consumers pinning a raw SHA should move to @v1.2.0.