Skip to content

Editing and debugging

Keep the app and browser running while you change tests:

Terminal window
dyno --ui --watch

Edits to tests or imported helpers queue a rebuild. If a run is active, Dyno waits for it before running the latest code. A build error leaves the previous results available; fix the file to run again.

Your app keeps its own hot reload. Restart Dyno after changing config or Node setup.

await app.pause('Inspect this contact');

Use this in a test or setup hook with --ui or --manual. It opens the reporter immediately and suspends the test deadline. Continue hides the reporter and resumes the remaining budget.

The app’s timers and requests keep running. Cleanup cannot pause, and headless runs reject the call. For failures anywhere in a suite, use Pause on failure in the reporter.

Run dyno doctor to check config, bundling, browser prerequisites and the app URL without launching anything. Add --ui or --manual to check that mode. The actual run still needs to start the server successfully.

Dyno transpiles TypeScript without checking it. Run your project’s tsc --noEmit, using moduleResolution: "Bundler" for browser tests; Interactor’s declarations don’t currently support strict NodeNext checking. JavaScript editors use the same included types.

To type values from Node setup, extend Fixtures in your project:

import 'dyno';
declare module 'dyno' {
interface Fixtures { contactId: string }
}

Config types work independently of the browser declarations.