/** @type {import('ts-jest').JestConfigWithTsJest} */ export default { preset: 'ts-jest', testEnvironment: 'node', extensionsToTreatAsEsm: ['.ts'], globals: { 'ts-jest': { useESM: true, tsconfig: { module: 'ESNext', target: 'ES2020' } } }, roots: ['/src'], testMatch: [ '**/__tests__/**/*.+(ts|tsx|js)', '**/*.(test|spec).+(ts|tsx|js)' ], transform: { '^.+\\.(ts|tsx)$': [ 'ts-jest', { useESM: true, tsconfig: { module: 'ESNext', target: 'ES2020' } } ], }, collectCoverageFrom: [ 'src/**/*.{ts,tsx}', '!src/**/*.d.ts', '!src/index.ts', ], coverageDirectory: 'coverage', coverageReporters: ['text', 'lcov', 'html'], setupFilesAfterEnv: ['/src/setupTests.ts'], moduleNameMapper: { '^@/(.*)$': '/src/$1', }, testTimeout: 10000, verbose: true, };