module.exports = { preset: 'ts-jest', testEnvironment: 'node', roots: ['/src', '/tests'], testMatch: [ '**/__tests__/**/*.+(ts|tsx|js)', '**/*.(test|spec).+(ts|tsx|js)' ], transform: { '^.+\\.(ts|tsx)$': 'ts-jest' }, collectCoverageFrom: [ 'src/**/*.{ts,tsx}', '!src/**/*.d.ts', '!src/swagger.ts', // Skip swagger spec file '!src/types/**/*', // Skip type definitions '!src/server.ts' // Skip main server as it's integration-focused ], coverageDirectory: 'coverage', coverageReporters: ['text', 'lcov', 'html'], coverageThreshold: { global: { branches: 80, functions: 80, lines: 80, statements: 80 } }, setupFilesAfterEnv: ['/tests/setup.ts'], testTimeout: 10000, verbose: true };