Latest published result
Loading verified status… · latest successful main build · main
Host-neutral API and lifecycle behavior.
Real browser, native module, no transform.
CLI, configuration, server, timeout, and paths.
Clean-project installation and package-name import.
Suite topology
The shared inventory contains 45 unique, narrowly scoped cases: 15 Unit, 10 Functional, 11 Integration, and 9 Regression. That inventory is executed unchanged in both Node and Chrome.
| Gate | Runtime | Evidence | Failure means |
|---|---|---|---|
| Shared categorized inventory | Node 22.12, Node 24, Chrome Stable | 45 unique Unit, Functional, Integration, and Regression cases from the same source modules | The public Web-standard API does not behave consistently. |
| Node tooling integration | Node 22.12 and Node 24 | Argument parsing, exit codes, result validation, glob matching, configuration, local server safety, timeouts and leaked handles | The developer-facing CLI or harness boundary is broken. |
| Native coverage gates | Node 24 and Chrome Stable | Independent executable-range, block-range, function-range, and executable-line measurements of index.js | One runtime did not exercise the complete configured core scope. |
| Packed npm artifact | Clean Node 24 project | npm pack, install the tarball, import package name, run and validate one result | The repository may pass while the published file set is unusable. |
The four category totals are one 45-case inventory. Node and Chrome execute that same inventory; they are evidence from different hosts, not 90 different cases. Tooling, coverage gates, and package smoke retain their own scopes.
Run tests locally
npm ci
npm testnpm test executes all four shared sets through the thin test/node.js adapter, then runs the Node-only CLI, output, server-security, status-builder, and benchmark-harness tests. Run one shared set directly when narrowing a failure:
npm run test:unit
npm run test:functional
npm run test:integration
npm run test:regressionnpm run coverage
# or isolate one collector
npm run coverage:node
npm run coverage:chromeTest output, assertion errors, and collector failures appear there. Use each command's exit status as its automation result.
Chrome coverage requires Google Chrome Stable. The CLI intentionally does not substitute Chromium, Edge, Firefox, or another browser.
What the four shared sets check
Small contracts in isolation
Exports, EventTarget inheritance, strong-type delegates, strict state, typed public arguments, and delay boundaries.
Public lifecycle outcomes
Numbered expectations, pass/fail recording, active-test guards, undecided failure, reporting preconditions, and the empty suite.
Contracts working together
Mixed reports, immutable snapshots, rendered output, subscription-free scheduling, late completion subscriptions, native event-type coercion, cleanup, and isolated instances.
Earlier fixes stay fixed
Duplicate state integrity, lenient and strict repeat decisions, report identity, log/event deduplication, and post-report sealing.
Interpret the live browser page correctly
The deployed verification page executes the current deployed test/CI.js in your browser. It proves that browser run only. The published status above records the corresponding Node and Chrome CI executions and includes commit and timestamp provenance.
- A green live page is useful interactive evidence, not a substitute for the CI matrix.
- A stale deployed page can lag current
main; use the CI badge and displayed commit together. - Coverage percentages prove execution of the configured scope, not correctness outside that scope.
Benchmark the complete native pipeline
The benchmark is a separate, auditable performance workload—not an inflated correctness-test count. It executes 1,000,000 uniquely named real cases as 1,000 bounded suites of 1,000 in independent Node and real-Chrome lanes, then includes native V8 coverage, validation, JSON, LCOV and standalone HTML report generation, and teardown in the cold-wall result.
npm ci --prefix benchmark
npm run benchmark
# quick end-to-end harness verification
npm run benchmark:smokeOnly the richer built-in node:test runner and pinned Mocha appear as competitors. Raw loops and less capable micro-runners do not enter the visible ranking.
Add the right kind of test
| Change | Put the test here | Reason |
|---|---|---|
| Isolated export, type, delegate, or boundary contract | test/shared/unit.js | One small contract should fail for one focused reason. |
| Public lifecycle outcome | test/shared/functional.js | Exercise behavior through the consumer-facing sequence. |
| Multiple public contracts working together | test/shared/integration.js | Keep cross-contract behavior separate from isolated units. |
| A previously fixed state or idempotence edge | test/shared/regression.js | Name the protected behavior without copying it into another set. |
| CLI, config, filesystem, process, or server behavior | test/tooling.js | These are intentionally Node-specific host concerns. |
| Published-file boundary | Package smoke step | Repository-relative imports can hide packaging defects. |
Keep the shared verifier independent of vanilla-test itself as an oracle. Its small Web-standard assertion helpers prevent the framework from certifying its own behavior.