- Docs
- Testing
Small checks · clear ownership
Five layers. One hundred two checks.
vanilla-test 2.1.1 runs focused Unit, Functional, Behavioral, Integration, and Regression checks. No duplicated cases. Forty-two shared checks import bare package names and run unchanged in Node and real Google Chrome, where the explicit import map proves js-queue works with bundlers and without a bundler.
102 focused checks
Five independent layers.
Each check owns one behavior or boundary. Open a layer to see every named case without turning this overview into a long test log.
One API fact at a time
Exports, defaults, isolated storage, return values, task references, size, and contents replacement.
See all 10 checks → 30 FunctionalObservable queue workflows
FIFO flow, manual release, stop gates, task context, Playground controls, validation, state, trace, and related code.
See all 30 checks → 9 BehavioralComplete consumer outcomes
Serialized ownership, dependency gates, producer rejection, stale-reference-safe clearing, recovery, explicit release, independent queues, reprioritization, and native no-bundler execution.
See all 9 checks → 28 IntegrationBoundaries working together
Active-task interactions, asynchronous release, ESM, CommonJS, stack, browser global, metadata, packed dependency conflicts, benchmark evidence, local HTTP, and media types.
See all 28 checks → 25 RegressionFailures that stay fixed
Atomic validation, thrown-task recovery, the no-WeakMap runtime contract, documentation links, local assets, testing attribution, and deployment gates.
See all 25 checks →npm test
npm run test:unit
npm run test:functional
npm run test:behavioral
npm run test:integration
npm run test:regression
npm run test:core
npm run test:playground
npm run test:package
npm run test:consumer
npm run test:server
npm run test:docsNative V8 evidence
Every core path is required.
The coverage configuration includes only the shipped ESM queue. Node uses package self-resolution; real Chrome uses the checked-in import map for js-queue, both stack paths, and easy-stack. Both collect native V8 data and enforce the same floor.
npm run coverage
# or independently
npm run coverage:node
npm run coverage:chromeThe JavaScript measured by both collectors is the same queue.js consumers import.
Delivery gates
Runtime and package shape are explicit.
CI runs vanilla-test across platforms and the exact Node floor, collects native Chrome coverage, reproduces the benchmark, and installs the packed artifact. Pages deploys only after that main run succeeds.
| Gate | Runtimes | Proves |
|---|---|---|
| Platforms | Node 24 · Linux, macOS, Windows | The full suite behaves consistently across operating systems. |
| Runtime floor | Node 22.13 | ESM and synchronous CommonJS share one source without warnings. |
| Coverage | Node 24 + Chrome Stable | The same 42-check inventory resolves bare imports and both native V8 collectors satisfy every 100% gate. |
| Benchmark | Node 24 | The tagged 3.0.0 baseline and private-field runtime are measured again. |
| Package | Node 24 | The tarball resolves ESM, CommonJS, browser, and stack files; a conflicting root dependency is poisoned while the declared nested dependency executes. |