27 lines
1.4 KiB
TypeScript
27 lines
1.4 KiB
TypeScript
import { defineConfig } from "vitest/config";
|
|
|
|
const requestedMaxWorkers = Number.parseInt(process.env.VITEST_MAX_WORKERS ?? "2", 10);
|
|
const maxWorkers = Math.max(1, Math.min(4, Number.isFinite(requestedMaxWorkers) ? requestedMaxWorkers : 2));
|
|
process.env.VITEST_MAX_WORKERS = String(maxWorkers);
|
|
|
|
export default defineConfig({
|
|
test: {
|
|
include: ["src/**/*.test.ts"],
|
|
pool: "threads",
|
|
maxWorkers,
|
|
poolOptions: { threads: { minThreads: 1, maxThreads: maxWorkers }, forks: { minForks: 1, maxForks: maxWorkers } },
|
|
// ── Engine guard ──────────────────────────────────────────────────────
|
|
// This setup file installs a vi.mock("@fusion/engine") that throws if
|
|
// the real engine is loaded. All plugin tests must mock "../pi-module.js"
|
|
// (the seam) to prevent the real @fusion/engine import chain.
|
|
//
|
|
// If you introduce a test that genuinely needs @fusion/engine:
|
|
// 1. Create a setup-test-isolation.ts (HOME override) following the
|
|
// pattern in packages/core/src/__tests__/setup-test-isolation.ts
|
|
// 2. Add it to setupFiles BEFORE this guard
|
|
// 3. Add a vi.mock("@fusion/engine", ...) override in the test file
|
|
// or a dedicated setup file to replace the throwing mock
|
|
setupFiles: ["./src/__tests__/setup-engine-guard.ts"],
|
|
},
|
|
});
|