Skip to main content
ProdBreak delivers real HTTP webhooks that fall out of real state transitions. The fixture stands up a local sink, registers it on your world, and exposes the signing secret and an inbox to assert against.

Receive and verify

Signing secrets are deterministic

Each endpoint’s secret is derived from (world key, endpoint url), so re-registering the same URL after a reset() yields the same secret — signature-verification tests are reproducible across runs. The fixture hands you inbox.secret; no copying values from a dashboard.

Webhook and GET always agree

The webhook payload and a later GET are two views of one frozen value (see set once, then frozen) — so this holds by construction:

Test your app’s handler, not just the inbox

To exercise your webhook handler instead of asserting on the sink, register your app’s endpoint URL instead of inbox.url:
Under the MVP wall-clock mode, delivery happens via the scheduler in real time — collapsing durations to 0 makes it fire inline so waitFor resolves immediately. See Deterministic CI.