import type { Config } from 'jest'; const config: Config = { preset: 'ts-jest', testEnvironment: 'node', roots: ['/src'], testMatch: ['**/__tests__/**/*.test.ts', '**/?(*.)+(spec|test).ts'], transform: { '^.+\\.ts$': 'ts-jest', }, collectCoverageFrom: ['src/**/*.ts', '!src/**/*.d.ts', '!src/server.ts'], coverageDirectory: 'coverage', coverageReporters: ['text', 'lcov', 'html'], moduleNameMapper: { '^@/(.*)$': '/src/$1', '^@config/(.*)$': '/src/config/$1', '^@controllers/(.*)$': '/src/controllers/$1', '^@dtos/(.*)$': '/src/dtos/$1', '^@entities/(.*)$': '/src/entities/$1', '^@exceptions/(.*)$': '/src/exceptions/$1', '^@interfaces/(.*)$': '/src/interfaces/$1', '^@middlewares/(.*)$': '/src/middlewares/$1', '^@repositories/(.*)$': '/src/repositories/$1', '^@routes/(.*)$': '/src/routes/$1', '^@services/(.*)$': '/src/services/$1', '^@utils/(.*)$': '/src/utils/$1', }, setupFilesAfterEnv: ['/src/test/setup.ts'], setupFiles: ['/src/test/jest.setup.ts'], testTimeout: 10000, // Watchman 비활성화 (macOS 호환성 개선) watchman: false, haste: { enableSymlinks: false, }, }; export default config;