Native V8 coverage
Current production-source coverage.
Measured on Node 24.18.0 after the full five-suite registry. Only the two shipped runtime files are included.
| Source | Executable ranges | Block ranges | Function ranges | Executable lines |
|---|---|---|---|---|
index.js | 90.00% · 306/340 | 71.05% · 81/114 | 99.55% · 225/226 | 90.87% · 926/1019 |
node.js | 88.23% · 30/34 | 80.00% · 8/10 | 91.66% · 22/24 | 91.91% · 91/99 |
| Total | 89.83% · 336/374 | 71.77% · 89/124 | 98.80% · 247/250 | 90.96% · 1017/1118 |
| Per-file gate | Lowest current file | Required | Status |
|---|---|---|---|
| Executable ranges | 88.23% | 85% | Pass |
| Block ranges | 71.05% | 65% | Pass |
| Function ranges | 91.66% | 90% | Pass |
| Executable lines | 90.87% | 90% | Pass |
Test suites
Five suites. One owner for every test.
| Suite | Result | What it covers |
|---|---|---|
| Unit | 586 passed · 13 guarded skips | Atomic validator contracts across all 201 core and Node validators, including guarded capabilities. |
| Functional | 15 passed | Strict and non-strict modes, unions, custom validators, and Node adapter inheritance. |
| Behavioral | 8 passed | Consumer order boundaries, untrusted JSON filtering, identifier routing, domain extensions, Node uploads, and thenable safety. |
| Integration | 636 passed | Reference and README completeness, import-map order and targets, package exports, packed-consumer configuration, deployment assertions, and CI wiring. |
| Regression | 23 passed | Coercion fixes, cross-realm brands, spoof resistance, revoked proxies, and cleanup resilience. |
| Total | 1,268 passed · 0 failed · 13 skipped | Five exclusive suites, plus seven shared behaviors passing in both Node and real Chrome. |
Compatibility matrix
Oldest supported Node. Current platforms.
| Job group | Runtime / platform | Command | Purpose |
|---|---|---|---|
| Compatibility · 5 jobs | Node 12.21.0, 18, 20, 22.12, 24 · Ubuntu | Compatibility adapter; primary runner at 22.12 | Syntax, imports, validators, guarded capabilities, and the minimum supported vanilla-test runtime. |
| Platforms · 3 jobs | Node 24 · Ubuntu, macOS, Windows | npm test | Cross-platform behavior. |
| Native coverage · 1 job | Node 24 · Ubuntu | npm run coverage | Production-source metrics and enforced floors. |
| Package · 1 job | Node 24 · Ubuntu | npm run test:package | Tarball inventory, isolated install, production dependency tree, and every supported ESM entry. |
| Native browser · 1 job | Node 24 + real Chrome · Ubuntu | npm run test:conformance | The same seven bare-import behavioral scenarios in both runtimes. |
Run it yourself
One pinned test runner.
| Command | What it does | Third-party tooling |
|---|---|---|
npm test | Runs all five suites from the canonical registry. | vanilla-test 2.1.0 |
npm run test:unit | Runs atomic core and Node validator contracts. | vanilla-test 2.1.0 |
npm run test:functional | Runs public mode, union, and adapter workflows. | vanilla-test 2.1.0 |
npm run test:behavioral | Runs observable consumer workflows and side-effect boundaries. | vanilla-test 2.1.0 |
npm run test:integration | Runs documentation, package, site, and tooling boundaries. | vanilla-test 2.1.0 |
npm run test:regression | Runs corrected edge cases and hostile-value protections. | vanilla-test 2.1.0 |
npm run test:legacy | Runs the same registered cases through the compatibility adapter. | None |
npm run test:browser | Runs the shared native-browser inventory in real Chrome. | vanilla-test 2.1.0 |
npm run test:conformance | Runs the same bare-import inventory in Node and real Chrome. | vanilla-test 2.1.0 |
npm run test:browser-contract | Statically verifies metadata, documentation, import-map order and targets, and the assembled site. | None |
npm run test:package | Packs and installs the candidate in an isolated ESM consumer. | npm |
npm run coverage | Runs the canonical registry through VanillaTest’s native Node V8 collector. | vanilla-test 2.1.0 |
npm start | Serves the static site at localhost:8000. | None |
npm test
npm run test:conformance
npm run coverageThe native-browser fixture keeps this complete npm-layout import map before its module script:
<script type="importmap">
{
"imports": {
"strong-type": "./node_modules/strong-type/index.js"
}
}
</script>
<script type="module">
import Is from 'strong-type';
console.log(new Is(false).string('native ESM'));
</script>Those mapped paths are relative to the HTML document. The app must be served over HTTP(S), and its server must expose the files; file:// is unsupported. There are no runtime dependencies, so this map needs no dependency entries or nested-version scopes.
Coverage boundaries
What these numbers do—and do not—say.
| Area | Measured here | Detail |
|---|---|---|
| Core and Node source | Yes | Executable-range, block-range, function-range, and executable-line coverage from V8. |
| Browser runtime | Behavior tested | Seven observable Given/When/Then scenarios run unchanged in Node and real Chrome through the bare import and explicit map. The numerical table remains Node/V8 coverage. |
| Unavailable host APIs | Guard tested | Strict TypeError and weak false behavior are checked when a capability is absent. |
| Browser result DOM | Automated | The native no-bundler fixture renders a passed/failed state and each scenario description after Chrome executes the shared inventory. |