Files
automaker/apps/server/vitest.config.ts
2025-12-21 23:13:59 -06:00

58 lines
2.0 KiB
TypeScript

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'),
},
},
});