import path from "node:path"; import { mergeConfig } from "vitest/config"; import { nodeVitestConfig } from "@repo/core-typescript/vitest.base.node"; // Coverage excludes mirror the app-tier pattern (see apps/cms and // apps/web-next vitest configs): bootstrap glue is excluded, thresholds // stay inherited from the shared base — never lowered here. export default mergeConfig(nodeVitestConfig, { test: { // Integration suites spawn a real runner process, run real `git // daemon` clones, and (story task 3) a real package-manager install // of the vite-kitchen fixture — minutes-scale on a cold cache. testTimeout: 240_000, hookTimeout: 60_000, coverage: { exclude: [ // Process bootstrap: env → server → signal handlers. Exercised // end-to-end by the spawn integration suite (tests/), which runs // it in a child process where v8 in-process coverage cannot see // it. All logic it calls (config, server) is unit-covered. "src/main.ts", ], }, }, resolve: { alias: { "@": path.resolve(__dirname, "./src") } }, });