module.exports = { preset: 'ts-jest', testEnvironment: 'node', roots: ['/src', '/tests'], testMatch: [ '**/__tests__/**/*.+(ts|tsx|js)', '**/*.(test|spec).+(ts|tsx|js)' ], transform: { '^.+\\.(ts|tsx)$': 'ts-jest' }, collectCoverageFrom: [ 'src/**/*.{ts,tsx}', '!src/**/*.d.ts', '!src/index.ts' ], coverageDirectory: 'coverage', coverageReporters: [ 'text', 'lcov', 'html' ], coverageThreshold: { global: { branches: 70, functions: 70, lines: 70, statements: 70 } }, moduleNameMapping: { '^@/(.*)$': '/src/$1', '^@/protocol/(.*)$': '/src/protocol/$1', '^@/commands/(.*)$': '/src/commands/$1', '^@/filesystem/(.*)$': '/src/filesystem/$1', '^@/auth/(.*)$': '/src/auth/$1', '^@/utils/(.*)$': '/src/utils/$1' }, setupFilesAfterEnv: ['/tests/setup.ts'], testTimeout: 10000, verbose: true, clearMocks: true, resetMocks: true, restoreMocks: true };