import { defineConfig } from "vitest/config";
import path from "node:path";

export default defineConfig({
  resolve: {
    alias: {
      "@": path.resolve(__dirname, "./src"),
      "@phase0": path.resolve(__dirname, "./scripts/phase-0"),
    },
  },
  test: {
    environment: "node",
    globals: true,
    passWithNoTests: true,
    // 15s (up from the 5s default). Full-suite parallel runs occasionally
    // starve single tests on slower hosts — most notably the CPU-heavy
    // eslint rule tests and React Testing Library mounts. Keeps per-test
    // timeouts long enough to absorb contention while still catching
    // genuine hangs. Individual tests can still override via `it(..., fn, ms)`.
    testTimeout: 15000,
    hookTimeout: 15000,
    include: ["src/**/*.test.ts", "src/**/*.test.tsx", "tests/**/*.test.ts", "tests/**/*.test.tsx"],
    coverage: {
      provider: "v8",
      reporter: ["text", "json-summary", "lcov"],
      include: ["src/**/*.ts", "src/**/*.tsx"],
      exclude: [
        "src/**/*.test.ts",
        "src/**/*.test.tsx",
        "src/**/types.ts",
        "src/host-contract.ts",
      ],
    },
  },
});
