typescript-express-starter
Version:
Quick and Easy TypeScript Express Starter
62 lines (55 loc) • 1.61 kB
text/typescript
import { defineConfig } from 'vitest/config';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
plugins: [tsconfigPaths()],
test: {
environment: 'node',
globals: true,
setupFiles: ['src/test/setup.ts'],
globalSetup: ['src/test/global-setup.ts'],
globalTeardown: ['src/test/global-teardown.ts'],
include: ['src/**/*.{test,spec}.ts', 'src/test/**/*.{test,spec}.ts'],
exclude: ['node_modules', 'dist', 'coverage', 'logs', 'src/migration/**/*'],
testTimeout: 20000, // TypeORM reflection 대기 시간
hookTimeout: 45000, // DB 연결 및 마이그레이션 시간
// TypeORM 특화 설정
poolOptions: {
threads: {
singleThread: true, // TypeORM은 메타데이터 충돌 방지
isolate: true,
},
},
coverage: {
provider: 'v8',
reporter: ['text', 'html', 'lcov', 'json'],
reportsDirectory: 'coverage',
include: ['src/**/*.{ts,tsx}'],
exclude: [
'src/**/*.d.ts',
'src/**/index.ts',
'src/test/**',
'src/migration/**/*',
'src/subscriber/**/*',
],
thresholds: {
branches: 80, // TypeORM은 복잡성으로 인해 약간 낮춤
functions: 80,
lines: 80,
statements: 80,
},
},
// 환경변수 설정
env: {
NODE_ENV: 'test',
LOG_LEVEL: 'error',
TYPEORM_LOGGING: 'false',
},
},
// TypeScript 설정 (Decorator 지원)
esbuild: {
target: 'node18',
keepNames: true,
experimentalDecorators: true,
},
});
export default config;