test: stub server-only under Vitest

The scenario-metrics route test now imports a module chain
(route → overlay.ts) that carries `import "server-only"`, which Vite can't
resolve to a Node entry. Alias it to an empty stub so the guard stays in app
code while Node-env tests load. Full suite: 600 passing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Khalim Conn-Kowlessar 2026-07-20 14:28:11 +01:00
parent 5866eacedc
commit 752eb5ecb7
2 changed files with 9 additions and 0 deletions

View file

@ -15,6 +15,9 @@ export default defineConfig({
resolve: {
alias: {
"@": path.resolve(__dirname, "./src"),
// `server-only` is a marker package with no Node-resolvable entry under
// Vite; stub it so tests that import a server module chain still load.
"server-only": path.resolve(__dirname, "./vitest/server-only-stub.ts"),
},
},
});

View file

@ -0,0 +1,6 @@
// Empty stub for the `server-only` marker package under Vitest. The real
// package resolves to an empty module on the server and a throwing one in the
// browser via export conditions Vite doesn't apply here; aliasing it keeps
// server-only guards in place in app code without breaking Node-env tests that
// import a module chain containing one. See vitest.config.ts.
export {};