Where danwo runs
Overview
What danwo can emulate and break depends on where your app runs. One rule decides it.
danwo can test an app on your laptop, a deployed staging site, or production. What it can do there depends on one thing: whether the app's traffic goes through danwo's proxy, the local server danwo puts between your app and the internet.
The one rule
danwo can only emulate and break what passes through its proxy.
Three things go through the proxy:
- The browser or Android device danwo drives. Always.
- Apps danwo starts. When your config gives a start command (
npm run dev), danwo runs it with its proxy settings, so every call the app makes reaches the proxy. No code changes. - Databases behind danwo's data proxies. Postgres and Redis, when your config puts them there.
Everything else is outside: a staging server, a remote API, the real Stripe it calls. danwo can't see those calls, so it can't emulate or break them.
What works where
| Setup | UI tests and agent | Recording and video | Server-side providers emulated | Browser-side providers emulated | Provider and webhook faults | Frontend→API faults | Database faults | Isolation and reset |
|---|---|---|---|---|---|---|---|---|
| Full-stack app, run locally | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓¹ | ✓ |
| Frontend and backend, both local | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓¹ | ✓ |
| Frontend only, against a remote API | ✓ | ✓ | ✗ | partial² | partial³ | ✓ | ✗ | partial⁴ |
| A deployed staging environment | ✓ | ✓ | ✗ | ✗ | ✗ | partial⁵ | ✗ | partial⁴ |
| Production | smoke only | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Mobile app (Android) | ✓ | ✓ | as its backend | ✓ | as its backend | ✓ | as its backend | as its backend |
- When the database sits behind one of danwo's data proxies.
- Only providers the remote API doesn't also talk to. See the one-provider rule.
- Faults on the browser's own calls to emulated providers. Webhooks go to the remote API, which danwo can't see.
- The browser and any emulators reset between tests. The remote backend's data doesn't.
- Possible, but every fault hits a real shared server. Use test accounts.
A mobile app goes through the proxy itself (danwo sets the emulator's proxy). Its backend is whichever row above matches it: run it locally for the full set, or point at staging.
Which one is for you
- On every pull request: run your app locally, as a full-stack app or a frontend and backend pair. You get everything.
- Before a release: staging, with your providers' real sandboxes.
- After a deploy: a short smoke test on production.
Which should I use? walks through the choice.