module.exports = { preset: 'ts-jest', testEnvironment: 'node', roots: ['/src', '/tests'], testMatch: ['**/__tests__/**/*.ts', '**/?(*.)+(spec|test).ts'], transform: { '^.+\\.ts$': 'ts-jest', }, collectCoverageFrom: [ 'src/**/*.ts', '!src/**/*.d.ts', '!src/**/*.test.ts', '!src/**/*.spec.ts', ], coverageDirectory: 'coverage', coverageReporters: ['text', 'lcov', 'html'], coverageThreshold: { global: { branches: 70, functions: 80, lines: 80, statements: 80, }, }, moduleNameMapper: { '^@services/(.*)$': '/src/services/$1', '^@models/(.*)$': '/src/models/$1', '^@controllers/(.*)$': '/src/controllers/$1', '^@middleware/(.*)$': '/src/middleware/$1', '^@utils/(.*)$': '/src/utils/$1', '^@config/(.*)$': '/src/config/$1', '^@types/(.*)$': '/src/types/$1', }, setupFilesAfterEnv: ['/tests/setup.ts'], verbose: true, testTimeout: 30000, // 增加测试超时时间 };