Skip to main content
scenario check drives pikopod’s own requests. A mode lets your tests meet the failure, but it needs pikopod up in another terminal. The Go package pkg/sandboxtest removes the terminal: one call starts a sandbox from the spec inside the test, in memory, on a random port, and closes it with the test.
retry_storm refuses the first two creates under one idempotency key with 503 and answers the third. A client that retries gets 201 and Verify reports PASSED. A client that gives up after the first 503 gets FAILED, with the summary naming the matcher that never matched, so the test fails for the right reason.

The surface

Nothing from pikopod’s internals appears in these signatures, so the package can stay stable while the engine moves.

One sandbox per test

New builds a fresh in-memory sandbox each time, so parallel tests never share state or modes. For a long suite that wants one process, pikopod up with forks gives the same isolation over HTTP, and the Jest and pytest helpers use that.

What it needs

The spec, as bytes. A documentation page is not accepted here; import it once with the CLI and commit the spec it emits with --emit-spec. See Importing from a docs URL.