/** @type {import('jest').Config} */ const config = { preset: "ts-jest/presets/default-esm", testEnvironment: "node", rootDir: "./", roots: ["/tests"], testMatch: ["**/*.test.ts", "**/*.test.js"], verbose: true, moduleNameMapper: { "^@/(.*)\\.js$": "/src/$1.ts", "^@/(.*)$": "/src/$1", "^(\\.\\.?/.*)\\.js$": "$1", }, extensionsToTreatAsEsm: [".ts"], transform: { "^.+\\.(t|j)s$": [ "ts-jest", { useESM: true, tsconfig: "./tsconfig.jest.json" }, ], }, transformIgnorePatterns: ["/node_modules/"], collectCoverageFrom: [ "src/services/**/*.{ts,js}", "src/middleware/**/*.{ts,js}", "!src/**/*.d.ts", ], coverageDirectory: "coverage", coverageReporters: ["text", "lcov"], coveragePathIgnorePatterns: [ "/node_modules/", "/src/index.ts", "/src/db/", "/src/logger/", "/src/types/", ], coverageThreshold: { global: { branches: 80, functions: 90, lines: 90, statements: 90, }, }, }; export default config;