Use cases
Surfaces that are genuinely hard to cover — a sign-up flow with no stable selectors, a plan cap that reports the wrong error, a drag-and-drop canvas — and what a scenario for each actually looks like. Where SDODS cannot do it yet, that is said outright.
Login, signup, email verification, 2FA, the device flow, OAuth consent, invitation acceptance and password reset
Testing an eight-screen auth funnel that has no test ids
Eight screens stand between a stranger and a session, and not one of them carries a data-testid. Every control is reachable only by its visible…
Authorisation refusals on an API served through a CDN
A 403 that a shared cache is free to replay
A refusal carried no Cache-Control header. The CDN in front of the application applies a default positive max-age to any response that declares…
Billing, usage and spending-limit routes behind plan entitlements
Plan caps, spending limits, and a gate that never fired
Entitlements are the deny direction of a product, and the deny direction is where the money is. One route issued presigned upload URLs. A global…
A node-graph editor: 193 block types, edges, handles, sub-block inputs and subflow containers
A workflow canvas SDODS cannot drag
This is the hardest UI surface in the product and the one the framework serves worst. And 193 block types is not a number you write 193 scenarios for.
A shared fixture workspace on a free plan with a three-workflow cap, holding twenty-three
Ten scenarios said "Forbidden" and meant "you are out of workflows"
Every scenario whose background created a workflow failed. The reported error was: Which reads like a permissions regression, and is not one. Probed…
A sidebar navigation entry that a product rename moved out from under the suite
Ten scenarios, one stale label: "Fleet" became "AGENTS"
Ten of ten scenarios in a module failed, all on the same navigation step. The heal log makes the cause unambiguous: Every strategy returned zero.…
Colour contrast across a marketing site and an authenticated application
One design token, eighteen failing nodes, and the landing-page CTA
Thirty-three of forty accessibility tests failed. That reads like a module in trouble; it was two design tokens. The brand primary was below the…
robots.txt, sitemap.xml and canonical hints, per environment
Staging serving production’s robots.txt, and a sitemap missing the pricing page
Three separate problems, none of which a status-code check can see. The third one is the interesting one for a test author, because the expected…
Content-Security-Policy on an unauthenticated login page
The strict policy was report-only and the enforced one allowed unsafe-inline
Two headers came back on the same response, carrying the same policy with one difference: The enforced policy substituted 'unsafe-inline' exactly…
A password-gated static documentation build that an entire module drives
A gated documentation site, and a variable no tooling knew about
Every scenario in the module failed on staging, with a message the step itself had written: The failure screenshot showed the gate: "This…
A coverage manifest, a CI guard, and the gap between planned and delivered
A green coverage guard over nine feature files that do not exist
The guard ran in CI, printed the drift in its own output, and exited zero: It asserted one direction — every file on disk belongs to a declared…
Parked scenarios: the ones the runner skips and the ones every recipe excludes
A suite where one scenario in eight was dark, and the report said otherwise
207 of 1,609 scenarios never executed. All 1,609 were reported as coverage. Two mechanisms, and only one of them is visible. @quarantine — 120…