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/** 全部逻辑层（纯逻辑 + React hooks）。
      // hooks(use*.ts) 用 jsdom + @testing-library/react 的 renderHook 单测（见各 *.test.ts 的
      // `// @vitest-environment jsdom` 头）。组件(.tsx)仍由 E2E/人工验收覆盖，不在 vitest 范围。
      // 排除项：测试文件本身、OpenAPI codegen 生成物。
      include: ["lib/**/*.ts"],
      exclude: ["lib/**/*.test.ts", "lib/api/schema.d.ts"],
      reporter: ["text", "text-summary"],
      thresholds: {
        lines: 80,
        functions: 80,
        branches: 80,
        statements: 80,
      },
    },
  },
});
