browser-journey-fixture validates a declared browser journey against an already exported local trace. Despite its name, it never opens a browser, runs a step, navigates, submits data, or fetches a URL. This scope adapts the catalog's journey-runner wording to the house read-only reporter contract. Node.js 22+; zero dependencies.
This walkthrough uses the tool's public README and checked-in example files. Run the command from a repository checkout with Node.js 22+.
Run the checked-in example
node bin/browser-journey-fixture.mjs --root examples --input passing.json
node bin/browser-journey-fixture.mjs --root examples --input failing.json
npm run checkRead the result
The passing example exits 0; the failing example exits 1 with an exact journey/step pointer. Bad CLI configuration exits 2 with empty stdout. Unreadable, partial, malformed, or missing evidence exits 2 with an incomplete JSON report. Stdout otherwise contains exactly one JSON report. The real input file must stay within the real --root, including through symlinks.
Scope
Strict UTF-8; maximum 1,048,576 bytes, 50 journeys/traces, 100 steps per journey/trace, JSON depth 7 (root 0), and 5,000 ms injected processing time. IDs and selector keys are 1–128 code units; local routes at most 256. Screenshots are optional 64-character lowercase SHA-256 digests. Exact N and N+1 tests cover the primary bounds. Duplicate JSON keys, including escaped spellings, and unknown fields are refused.