/** @type {import('ts-jest').JestConfigWithTsJest} */
export default {
preset: "ts-jest/presets/default-esm",
testEnvironment: "node",
extensionsToTreatAsEsm: [".ts"],
globals: {
"ts-jest": {
useESM: true,
},
},
transformIgnorePatterns: [
"node_modules/(?!(@modelcontextprotocol)/)"
],
testEnvironment: "node",
roots: ["<rootDir>/src", "<rootDir>/__tests__"],
testMatch: ["**/__tests__/**/*.test.ts", "**/?(*.)+(spec|test).ts"],
transform: {
"^.+\\.ts$": "ts-jest",
},
moduleNameMapping: {
"^@/(.*)$": "<rootDir>/src/$1",
},
collectCoverageFrom: ["src/**/*.ts", "!src/**/*.d.ts", "!src/index.ts"],
coverageDirectory: "coverage",
coverageReporters: ["text", "lcov", "html"],
coverageThreshold: {
global: {
branches: 85,
functions: 85,
lines: 85,
statements: 85,
},
},
setupFilesAfterEnv: ["<rootDir>/__tests__/setup.ts"],
testTimeout: 10000,
verbose: true,
};