export default {
roots: ['<rootDir>/src', '<rootDir>/tests'],
preset: 'ts-jest/presets/default-esm',
testEnvironment: 'node',
clearMocks: true,
extensionsToTreatAsEsm: ['.ts'],
moduleNameMapper: {
'^(\\.{1,2}/.*)\\.js$': '$1',
'^(\\.{1,2}/.*)\\.ts$': '$1',
'^../../src/(.*)\\.js$': '<rootDir>/src/$1.ts',
'^../../../src/(.*)\\.js$': '<rootDir>/src/$1.ts',
'^../../src/(.*)$': '<rootDir>/src/$1',
'^../../../src/(.*)$': '<rootDir>/src/$1',
'^@modelcontextprotocol/sdk/server/index$': '<rootDir>/__mocks__/@modelcontextprotocol/sdk/server/index.js',
'^@modelcontextprotocol/sdk/server/stdio$': '<rootDir>/__mocks__/@modelcontextprotocol/sdk/server/stdio.js',
'^../../src/telemetry/(.*)$': '<rootDir>/src/telemetry/$1.ts',
'^../../../src/bigquery/client$': '<rootDir>/__mocks__/src/bigquery/client.js',
'^../../src/bigquery/client$': '<rootDir>/__mocks__/src/bigquery/client.js',
},
moduleDirectories: ['node_modules', '<rootDir>', '<rootDir>/src', '<rootDir>/tests'],
transform: {
'^.+\\.tsx?$': [
'ts-jest',
{ useESM: true, diagnostics: false },
],
},
transformIgnorePatterns: ['/node_modules/(?!(@modelcontextprotocol)/)'],
setupFilesAfterEnv: ['<rootDir>/tests/setup.ts'],
testMatch: ['**/tests/**/*.test.ts','**/__tests__/**/*.ts','**/?(*.)+(spec|test).ts'],
testPathIgnorePatterns: ['/node_modules/','/dist/'],
collectCoverageFrom: [
'src/**/*.ts',
'!src/**/*.d.ts',
'!src/**/__tests__/**',
'!src/**/*.test.ts',
'!src/**/*.spec.ts',
],
coverageDirectory: '<rootDir>/coverage',
verbose: true,
globals: {
'ts-jest': {
useESM: true,
diagnostics: false,
}
}
};