test authentication flows that redirect across origins in cypress using cy.origin()
domain: docs.cypress.io · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
wrap interactions that occur on the secondary domain (e.g. an OAuth provider's login page) in cy.origin(url, () => { ... })
pass any data needed inside the callback via the options argument's args property, since the callback runs in an isolated context without closure access to outer variables
perform the login form interactions inside the cy.origin() block using standard commands scoped to that secondary origin
allow the flow to navigate back to the original origin after authentication completes, then resume normal top-level cy commands
combine with cy.session() to cache the resulting authenticated session across tests and avoid repeating the full cross-origin login flow each time
Known gotchas
the callback passed to cy.origin() cannot close over outer-scope variables or functions; only serializable data passed via the args option is available inside it
each test can only be in one origin's context at a time -- interacting with elements on two different origins simultaneously (e.g. a live cross-origin iframe) is not what cy.origin() provides
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?