Agent and browser testing
Automated browsers behave most like production when they hit a real HTTPS origin. routeup gives your dev server one, locally or publicly.
In-process test runners
Section titled “In-process test runners”When the test runner is on the same machine (Playwright, Puppeteer, Cypress), use the local route, real HTTPS, no network:
routeup serve example-app --port 3000await page.goto('https://example-app.localhost');This exercises secure cookies, service workers, and https-only web APIs that a
plain http://localhost:3000 would not.
Trusting the CA in the runner
Section titled “Trusting the CA in the runner”Browsers launched by these tools usually use the system trust store, so the routeup CA is already trusted. If a runtime ships its own CA bundle, point it at the routeup CA:
export NODE_EXTRA_CA_CERTS=~/.routeup/ca.crtApps with a separate trust store may need the CA imported through their own settings. See Custom CA certificates.
Off-host or cloud browsers
Section titled “Off-host or cloud browsers”When the browser runs somewhere else, CI, a cloud browser, or an LLM agent
driving a remote browser, localhost is not reachable. Expose the route and
hand the agent the public URL. First configure a public server as described in
Exposing publicly. This example assumes your saved token allows
*.mukul.routeup.dev:
routeup serve example-app --port 3000 --exposehttps://example-app.mukul.routeup.devThe configured route and namespace let you request the same target URL between runs, so test configs and prompts do not need a newly generated URL. Public claims remain subject to the server’s normal conflict rules.