Jest 테스트 설정
TypeScript 프로젝트를 위한 종합적인 Jest 설정입니다. 경로 별칭(path alias), 커버리지 리포트, 커스텀 매처(matcher) 설정을 포함합니다.
/** @type {import('jest').Config} */
module.exports = {
// TypeScript 파일 처리를 위한 ts-jest 설정
preset: 'ts-jest',
testEnvironment: 'node',
// 테스트 파일 패턴
testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'],
// 경로 별칭(Alias) 해결 (tsconfig.json의 paths와 동기화 필요)
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
'^@config/(.*)$': '<rootDir>/src/config/$1',
},
// 테스트 실행 전 초기화 코드 (커스텀 매처 등)
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
// 코드 커버리지 설정
collectCoverage: true,
collectCoverageFrom: [
'src/**/*.ts',
'!src/**/*.d.ts',
'!src/main.ts',
'!src/db/migrations/**',
],
coverageDirectory: 'coverage',
coverageReporters: ['text', 'lcov', 'cobertura'],
// 커버리지 임계값 (필요시 설정)
coverageThreshold: {
global: {
branches: 80,
functions: 80,
lines: 80,
statements: 80,
},
},
// 자세한 출력 설정
verbose: true,
// 특정 디렉토리 무시
testPathIgnorePatterns: ['/node_modules/', '/dist/'],
};