import { resolve } from "node:path"; import { defineConfig } from "vitest/config"; // 单测:纯逻辑(SSE reducer / 自动保存防抖 / 向导流程),node 环境,无需 DOM。 export default defineConfig({ resolve: { alias: { "@": resolve(__dirname, ".") }, }, test: { environment: "node", include: ["lib/**/*.test.ts"], coverage: { provider: "v8", // 覆盖范围 = 可单测的纯逻辑层(lib/**),node 环境即可跑。 // 排除项: // - 组件(.tsx):由 E2E/人工验收覆盖,不在 vitest 范围。 // - React hooks(use*.ts):需 jsdom + @testing-library/react 才能单测, // 当前 node-only 测试栈无法覆盖。待办:接入 jsdom 测试栈后移除此排除, // 把 hooks 纳入 80% 门禁。 // - lib/api/schema.d.ts:OpenAPI codegen 生成物。 include: ["lib/**/*.ts"], exclude: ["lib/**/*.test.ts", "lib/**/use*.ts", "lib/api/schema.d.ts"], reporter: ["text", "text-summary"], thresholds: { lines: 80, functions: 80, branches: 80, statements: 80, }, }, }, });