Skip to main content
A plugin is a thin, framework-native layer over the SDK. It connects to this worker’s instance once, 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

1

Session: connect once

The plugin connects to this worker’s instance (from PRODBREAK_URL / the worker CSVs) a single time — you pay connection once.
2

Function: reset() each test

Before (and after) each test the world is rewound to t0, keeping tests independent.
3

Sinks are managed for you

Webhook sinks the test stands up are torn down on reset — you don’t manage receiver servers.
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.