pcbjam/web/standalone/vitest.config.ts
Gergő Törcsvári 269449da46
fix(collab): dedupe yjs so @pcbjam/shared + standalone link ONE instance
Two pnpm workspaces (root globs pcbjam-shared; pcbjam/web has it too) each install yjs, so shared's collab code (kicad-y) and the app's yjs were two physical copies → a Y.Map rejects the other instance's Y types ('Unexpected content type'). resolve.dedupe:['yjs'] in vite + vitest forces a single copy. Not a test-only artifact: the same two copies bundle into the editor and would break collab on doc seed. Full standalone suite now 55/55 (was 47/55).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-30 09:54:50 +02:00

20 lines
843 B
TypeScript

import path from "node:path";
import { defineConfig } from "vitest/config";
// Standalone unit-test config, intentionally separate from vite.config.ts so the
// test run doesn't pull in the React plugin / WASM-asset dev server. Pure-logic
// modules (e.g. the sexpr-diff comparator) run in the node environment.
export default defineConfig({
resolve: {
alias: { "@": path.resolve(__dirname, "./src") },
// @pcbjam/shared lives in a second pnpm workspace, so without this its `yjs`
// and the standalone's `yjs` resolve to two physical copies → a Y.Map from
// one instance rejects Y types from the other ("Unexpected content type").
// Force a single yjs (it's a shared mutable singleton — instanceof-checked).
dedupe: ["yjs"],
},
test: {
environment: "node",
include: ["src/**/*.test.ts"],
},
});