/** * Jest配置 - 支持TypeScript和React测试 */ module.exports = { preset: 'ts-jest', testEnvironment: 'jsdom', setupFilesAfterEnv: ['/src/setupTests.ts'], moduleNameMapping: { '^@/(.*)$': '/src/$1' }, transform: { '^.+\\.(ts|tsx)$': ['ts-jest', { tsconfig: 'tsconfig.json' }], '^.+\\.(js|jsx)$': 'babel-jest' }, moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'], testMatch: [ '/src/**/__tests__/**/*.(ts|tsx|js|jsx)', '/src/**/?(*.)(spec|test).(ts|tsx|js|jsx)' ], collectCoverageFrom: [ 'src/**/*.{ts,tsx}', '!src/**/*.d.ts', '!src/setupTests.ts', '!src/**/__tests__/**' ], coverageDirectory: 'coverage', coverageReporters: ['text', 'lcov', 'html'] };