module.exports = { preset: 'ts-jest', testEnvironment: 'node', roots: ['/src'], testMatch: [ '**/__tests__/**/*.+(ts|tsx|js)', '**/*.(test|spec).+(ts|tsx|js)' ], transform: { '^.+\\.(ts|tsx)$': 'ts-jest' }, collectCoverageFrom: [ 'src/**/*.{ts,tsx}', '!src/**/*.d.ts', '!src/**/*.test.{ts,tsx}', '!src/**/*.spec.{ts,tsx}' ], coverageDirectory: 'coverage', coverageReporters: ['text', 'lcov', 'html'], setupFilesAfterEnv: ['/src/test-setup.ts'], testTimeout: 30000, // 30 seconds for integration tests verbose: true, // Mock Firebase Admin SDK moduleNameMapping: { '^firebase-admin/(.*)$': '/src/__mocks__/firebase-admin/$1.js' } };