From c8d052d3078f87c7c162ff31a6ca39ce3069f823 Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 12 May 2026 11:25:54 +0200 Subject: [PATCH] docs(adr-012): add overlay navigation pattern note Co-Authored-By: Claude Sonnet 4.6 --- docs/adr/012-browser-test-mocking-strategy.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/adr/012-browser-test-mocking-strategy.md b/docs/adr/012-browser-test-mocking-strategy.md index 763a7649..b1e01ead 100644 --- a/docs/adr/012-browser-test-mocking-strategy.md +++ b/docs/adr/012-browser-test-mocking-strategy.md @@ -79,6 +79,8 @@ The following `vi.mock(module, factory)` calls in browser specs are **acceptable These modules are resolved at static import time (before any test runs). Their `vi.mock` factories are served by birpc synchronously during module graph resolution, not after worker teardown. +**Pattern note:** When an overlay or dropdown contains a navigation link (``), use `e.preventDefault()` + `goto(path)` in the click handler instead of letting the browser follow the `href`. In a vitest-browser Playwright iframe there is no SvelteKit router, so a real navigation tears down the orchestrator iframe and crashes the test run. The `href` attribute should still be present for right-click / open-in-new-tab semantics. + --- ## Consequences