module.exports = { preset: 'ts-jest', testEnvironment: 'jsdom', roots: ['/src'], testMatch: ['**/__tests__/**/*.test.{ts,tsx}', '**/*.test.{ts,tsx}'], collectCoverageFrom: [ 'src/**/*.{ts,tsx}', '!src/**/*.d.ts', '!src/**/*.stories.{ts,tsx}', '!src/**/__tests__/**', '!src/db/seed*.ts', ], coverageThreshold: { global: { branches: 41, functions: 48, lines: 54, statements: 53, }, }, coverageReporters: ['text', 'lcov', 'html', 'json'], coverageDirectory: 'coverage', moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'], moduleNameMapper: { '^@/(.*)$': '/src/$1', }, transform: { '^.+\\.(ts|tsx)$': [ 'ts-jest', { tsconfig: 'tsconfig.test.json', }, ], }, transformIgnorePatterns: [ 'node_modules/(?!(nanoid|next-auth|@auth)/)', ], setupFilesAfterEnv: ['/jest.setup.js'], testTimeout: 10000, verbose: true, maxWorkers: '50%', cacheDirectory: '/tmp/jest-cache', };