import { defineConfig } from 'vitest/config'; import path from 'path'; export default defineConfig({ test: { reporters: ['verbose'], globals: true, environment: 'node', setupFiles: ['./tests/setup.ts'], coverage: { provider: 'v8', reporter: ['text', 'json', 'html', 'lcov'], include: ['src/**/*.ts'], exclude: [ 'src/**/*.d.ts', 'src/index.ts', 'src/routes/**', // Routes are better tested with integration tests 'src/types/**', // Type re-exports don't need coverage 'src/middleware/**', // Middleware needs integration tests 'src/lib/enhancement-prompts.ts', // Prompt templates don't need unit tests 'src/services/claude-usage-service.ts', // TODO: Add tests for usage tracking '**/libs/**', // Exclude aliased shared packages from server coverage ], thresholds: { // Increased thresholds to ensure better code quality // Current coverage: 64% stmts, 56% branches, 78% funcs, 64% lines lines: 60, functions: 75, branches: 55, statements: 60, }, }, include: ['tests/**/*.test.ts', 'tests/**/*.spec.ts'], exclude: ['**/node_modules/**', '**/dist/**'], mockReset: true, restoreMocks: true, clearMocks: true, }, resolve: { alias: { '@': path.resolve(__dirname, './src'), // Resolve shared packages to source files for proper mocking in tests '@automaker/utils': path.resolve(__dirname, '../../libs/utils/src/index.ts'), '@automaker/platform': path.resolve(__dirname, '../../libs/platform/src/index.ts'), '@automaker/types': path.resolve(__dirname, '../../libs/types/src/index.ts'), '@automaker/model-resolver': path.resolve( __dirname, '../../libs/model-resolver/src/index.ts' ), '@automaker/dependency-resolver': path.resolve( __dirname, '../../libs/dependency-resolver/src/index.ts' ), '@automaker/git-utils': path.resolve(__dirname, '../../libs/git-utils/src/index.ts'), }, }, });