import { configDefaults, defineConfig } from 'vitest/config' import react from '@vitejs/plugin-react' import { resolve } from 'path' export default defineConfig({ plugins: [react()], resolve: { alias: { '@': resolve(__dirname, 'src'), }, }, test: { globals: true, environment: 'jsdom', setupFiles: ['./tests/setup.ts'], // The Playwright E2E suite lives under e2e/ and uses @playwright/test's // own test runner (`npm run e2e`), not Vitest's — exclude it here so // `vitest run` never tries to collect those specs. exclude: [...configDefaults.exclude, 'e2e/**'], coverage: { provider: 'v8', reporter: ['text', 'lcov'], // Thresholds set as a regression ratchet to prevent coverage from dropping. // Measured: lines 97.27%, functions 92.87%, statements 97.27%, branches 93.78%. // Set ~1-2pp below measured to catch real regressions without false positives. thresholds: { lines: 96, functions: 91, branches: 92, statements: 96, }, include: ['src/**/*.{ts,tsx}'], exclude: [ 'src/main.tsx', 'src/vite-env.d.ts', 'src/types/**', '**/*.test.ts', '**/*.test.tsx', ], }, }, })