Open source · Quality & Testing

Browser Journey Fixture

Replay browser journeys with stable selectors, checkpoints and evidence.

v0.1.0 · Node.js 22+ · MIT

Browse the public repository · View releases

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 check

Read 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.