reset()s the world between tests, and hands you a Sandbox.
Jest — @prod-break/jest
Jest has no fixture injection, so the plugin is helper functions over beforeEach/afterEach:
Vitest — @prod-break/vitest
Vitest has real fixture injection (test.extend), so you get an injected sandbox:
pytest — prod-break-pytest
A real pytest fixture, auto-registered via the plugin entry point:
Lifecycle, in all three
Session: connect once
The plugin connects to this worker’s instance (from
PRODBREAK_URL / the worker CSVs) a single
time — you pay connection once.Function: reset() each test
Before (and after) each test the world is rewound to t0, keeping tests independent.
Ship order. JS/TS (Jest, then Vitest) lands first — that’s where most integration suites
live. pytest is the next plugin on the roadmap; its surface mirrors the TS SDK one-for-one
(
snake_case), so everything you learn here carries over.