export default { // Use Node.js environment for testing testEnvironment: 'node', // Automatically clear mock calls between every test clearMocks: true, // Indicates whether the coverage information should be collected while executing the test collectCoverage: false, // The directory where Jest should output its coverage files coverageDirectory: 'coverage', // A list of paths to directories that Jest should use to search for files in roots: ['/tests'], // The glob patterns Jest uses to detect test files testMatch: ['**/__tests__/**/*.js', '**/?(*.)+(spec|test).js'], // Transform files preset: 'ts-jest/presets/default-esm', extensionsToTreatAsEsm: ['.ts'], moduleFileExtensions: ['js', 'ts', 'json', 'node'], transform: { '^.+\\.ts$': [ 'ts-jest', { useESM: true } ] }, // Disable transformations for node_modules transformIgnorePatterns: ['/node_modules/'], // Set moduleNameMapper for absolute paths moduleNameMapper: { '^@/(.*)$': '/$1' }, resolver: '/jest.resolver.cjs', // Setup module aliases moduleDirectories: ['node_modules', ''], // Configure test coverage thresholds coverageThreshold: { global: { branches: 80, functions: 80, lines: 80, statements: 80 } }, // Generate coverage report in these formats coverageReporters: ['text', 'lcov'], // Verbose output verbose: true, // Setup file setupFilesAfterEnv: ['/tests/setup.js'] };