/** @type {import('ts-jest').JestConfigWithTsJest} */
export default {
preset: 'ts-jest/presets/default-esm',
testEnvironment: 'node',
extensionsToTreatAsEsm: ['.ts'],
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.(js|ts)$': '$1',
},
transform: {
'^.+\\.tsx?$': [
'ts-jest',
{
useESM: true
},
],
},
setupFilesAfterEnv: ['./test/jest.setup.ts'],
testMatch: [
"**/__tests__/**/*.+(ts|tsx|js)",
"**/?(*.)+(spec|test).+(ts|tsx|js)"
],
collectCoverage: true,
collectCoverageFrom: [
'src/**/*.ts',
'!src/**/*.d.ts',
'!**/node_modules/**'
],
forceExit: true,
coverageThreshold: {
global: {
branches: 10,
functions: 30,
lines: 30,
statements: 25
}
}
};