test-error-states

Solid

Force the states a happy-path run never reaches — a failing API, an empty list, a slow request, a timeout, an expired session, a toast that auto-dismisses — and check the UI actually handles them. Use when error handling was written but never run, when a loading or empty state needs verifying, when a bug only happens on a slow connection, or when a timer, poll, debounce or retry needs testing without sleeping.

Testing & QA 326 stars 69 forks Updated today NOASSERTION

Install

View on GitHub

Quality Score: 79/100

Stars 20%
84
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# The error state has never run Every app has a `catch` block nobody has executed and an empty state nobody has seen. They are written from imagination, shipped untested, and discovered by a user on a bad day. **Reticle** can force those conditions in the running app. Not installed? `RETICLE_INSTALL_SOURCE=npx_skill npx @reticlehq/server@latest init`, then the [`install-and-verify`](https://github.com/reticlehq/reticle/blob/main/skills/install-and-verify/SKILL.md) skill. ## Read this before you start: network mocking needs a driven browser `reticle_network_mock` applies mocks through CDP, and **the always-on SDK cannot do it.** A pooled lease is not enough either — `reticle_lease` returns `{ ok: false, reason: "no-cdp-provider" }`. Your route is `RETICLE_CDP_URL` pointed at a Chrome started with remote debugging: ```bash # macOS — the user runs this once, in their own Chrome /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 RETICLE_CDP_URL=http://localhost:9222 npx @reticlehq/server@latest mcp ``` If that is not set up, **say so in one line and offer the clock half of this skill anyway** — `reticle_clock` needs none of it. What you may not do is drive the happy path, watch it pass, and report that error handling works. ## Force a failure ``` reticle_run({ tool: "reticle_network_mock", sessionId, args: { mocks: [{ urlContains: "/api/deploys", status: 500 }], }}) ``` Then drive the flow and **name the recovery you expect be...

Details

Author
reticlehq
Repository
reticlehq/reticle
Created
2 months ago
Last Updated
today
Language
TypeScript
License
NOASSERTION

Integrates with

Similar Skills

Semantically similar based on skill content — not just same category