Skip to main content
A scenario is a failure story run against a sandbox: send these requests, arm these faults, assert these things about the responses, and tell me whether my integration survives.

Where scenarios come from

Runs are ephemeral

scenario run builds its own engine in-process against a throwaway copy of the sandbox. Nothing you serve with pikopod up is touched, and no server needs to be running. When you want your own application to meet a failure on the served sandbox, use a mode instead.

Exit codes

0 when every scenario passes, 1 when an assertion fails, 2 when a step could not execute or the run could not be set up. A failing scenario and a broken tool are never conflated.

Where packs live

scenario run looks for packs in ./scenarios (relative to where you run it) and in <data_dir>/scenarios. Generated packs are written to <data_dir>/scenarios. Copy one into ./scenarios to check it in. Packs are ordinary YAML, and a committed scenarios/ directory is the regression suite for every provider change you have survived.