mirror of
https://github.com/tiddly-gittly/TidGi-Desktop.git
synced 2026-03-20 05:40:28 -07:00
75 lines
2.1 KiB
JavaScript
75 lines
2.1 KiB
JavaScript
/** @type {import('jest').Config} */
|
|
module.exports = {
|
|
// Use ts-jest to transform TypeScript
|
|
preset: 'ts-jest',
|
|
|
|
// Test environment
|
|
testEnvironment: 'jsdom',
|
|
|
|
// Setup files
|
|
setupFilesAfterEnv: ['<rootDir>/src/__tests__/setup-jest.ts'],
|
|
|
|
// Test file patterns
|
|
testMatch: [
|
|
'<rootDir>/src/**/__tests__/**/*.(test|spec).(ts|tsx|js)',
|
|
'<rootDir>/src/**/*.(test|spec).(ts|tsx|js)',
|
|
],
|
|
|
|
// Module file extensions
|
|
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
|
|
|
|
// Module aliases - matches webpack config
|
|
moduleNameMapper: {
|
|
'^@/(.*)$': '<rootDir>/src/$1',
|
|
'^@services/(.*)$': '<rootDir>/src/services/$1',
|
|
'@mui/styled-engine': '@mui/styled-engine-sc',
|
|
// Static asset mocks
|
|
'\\.(css|less|scss|sass)$': 'identity-obj-proxy',
|
|
'\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '<rootDir>/src/__tests__/__mocks__/fileMock.js',
|
|
},
|
|
|
|
// Performance optimizations
|
|
maxWorkers: '50%', // 使用CPU核心数的50%进行并行测试
|
|
cacheDirectory: '<rootDir>/node_modules/.cache/jest', // 启用Jest缓存
|
|
|
|
// Coverage settings
|
|
collectCoverageFrom: [
|
|
'src/**/*.{ts,tsx}',
|
|
'!src/**/*.d.ts',
|
|
'!src/__tests__/**/*',
|
|
'!src/main.ts',
|
|
'!src/preload/**/*',
|
|
],
|
|
|
|
// Coverage reporters
|
|
coverageReporters: ['text', 'lcov', 'html'],
|
|
|
|
// Ignored paths
|
|
modulePathIgnorePatterns: ['<rootDir>/out/', '<rootDir>/.webpack/'],
|
|
|
|
// 优化的ts-jest配置
|
|
transform: {
|
|
'^.+\\.(ts|tsx)$': ['ts-jest', {
|
|
tsconfig: './tsconfig.test.json', // 使用专门的测试配置
|
|
}],
|
|
},
|
|
|
|
// 全局配置优化 - 修正警告
|
|
// globals: {
|
|
// 'ts-jest': {
|
|
// isolatedModules: true, // 提高编译速度
|
|
// useESM: false,
|
|
// },
|
|
// },
|
|
|
|
// Environment variables
|
|
setupFiles: ['<rootDir>/src/__tests__/environment.ts'],
|
|
|
|
// 缩短超时时间
|
|
testTimeout: 5000, // 从10000减少到5000
|
|
|
|
// 并行化配置
|
|
runner: 'jest-runner', // 确保使用默认runner
|
|
detectOpenHandles: false, // 禁用检测打开的句柄以提高性能
|
|
forceExit: true, // 强制退出以避免EPERM错误
|
|
};
|