jest.config.js•1.5 kB
/**
* Jest Configuration for Exa MCP Server Websets
*/
export default {
preset: 'ts-jest/presets/default-esm',
extensionsToTreatAsEsm: ['.ts'],
testEnvironment: 'node',
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
},
transform: {
'^.+\\.ts$': ['ts-jest', {
useESM: true,
tsconfig: {
module: 'ESNext',
moduleResolution: 'node'
}
}]
},
testMatch: [
'**/tests/**/*.test.ts',
'**/tests/**/*.spec.ts'
],
roots: ['<rootDir>/src', '<rootDir>/tests'],
setupFilesAfterEnv: ['<rootDir>/tests/setup.ts'],
collectCoverage: true,
coverageDirectory: 'coverage',
coverageReporters: ['text', 'lcov', 'html', 'json'],
collectCoverageFrom: [
'src/**/*.ts',
'!src/**/*.d.ts',
'!src/**/*.test.ts',
'!src/**/*.spec.ts',
'!src/index.ts',
'!src/tools/index.ts',
'!src/types/**'
],
coverageThreshold: {
global: {
branches: 90,
functions: 90,
lines: 90,
statements: 90
}
},
reporters: [
'default',
['jest-junit', {
outputDirectory: 'test-results',
outputName: 'junit.xml'
}]
],
testTimeout: 30000,
verbose: true,
clearMocks: true,
restoreMocks: true,
errorOnDeprecated: true,
globals: {
'ts-jest': {
useESM: true
}
},
moduleFileExtensions: ['ts', 'js', 'json'],
testPathIgnorePatterns: [
'/node_modules/',
'/dist/',
'/coverage/',
'\\.enhanced\\.test\\.ts$'
]
};