Skip to content

Commit 98a6239

Browse files
committed
test(web): isolate event router browser harness
1 parent 22dc792 commit 98a6239

3 files changed

Lines changed: 24 additions & 2 deletions

File tree

apps/web/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"typecheck": "tsc --noEmit",
1212
"test": "vitest run --passWithNoTests",
1313
"test:browser": "vitest run --config vitest.browser.config.ts",
14-
"test:browser:stable": "vitest run --config vitest.browser.stable.config.ts",
14+
"test:browser:stable": "vitest run --config vitest.browser.stable.config.ts && vitest run --config vitest.browser.event-router.config.ts",
1515
"test:browser:geometry": "vitest run --config vitest.browser.geometry.config.ts",
1616
"test:personality:smoke": "vitest run --config vitest.browser.personality.config.ts",
1717
"test:electron:e2e": "playwright test --config playwright.electron.config.ts",
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { defineConfig, mergeConfig } from "vitest/config";
2+
3+
import browserConfig from "./vitest.browser.config";
4+
5+
// EventRouter drives an MSW service worker plus a WebSocket transport singleton.
6+
// Run it in its own browser process so unrelated browser files cannot retain
7+
// page-global transport state across the mount that exercises recovery ordering.
8+
export default mergeConfig(
9+
browserConfig,
10+
defineConfig({
11+
test: {
12+
include: ["src/components/EventRouter.browser.tsx"],
13+
fileParallelism: false,
14+
maxConcurrency: 1,
15+
sequence: { concurrent: false },
16+
},
17+
}),
18+
);

apps/web/vitest.browser.stable.config.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@ export default mergeConfig(
66
browserConfig,
77
defineConfig({
88
test: {
9-
testNamePattern: /^(?!.*\[geometry:linux\])/,
9+
// EventRouter owns an MSW service worker and transport singleton. Give
10+
// its fixture-backed cases a fresh browser process after this suite.
11+
// Vitest's file exclude is applied before the browser include set is
12+
// merged, so filter this describe at the test-name layer instead.
13+
testNamePattern: /^(?!.*\[geometry:linux\])(?!.*EventRouter scoped orchestration sync)/,
1014
// Browser suites share one page and some legacy fixture-backed suites
1115
// deliberately mutate their transport state between assertions.
1216
sequence: { concurrent: false },

0 commit comments

Comments
 (0)