jest.config.js•1.28 kB
/** @type {import('jest').Config} */
const config = {
// Test environment
testEnvironment: 'node',
// Setup files to run before tests
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
// TypeScript support
preset: 'ts-jest',
extensionsToTreatAsEsm: ['.ts'],
globals: {
'ts-jest': {
useESM: true,
},
},
// Module name mapping for absolute imports
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
},
// Test patterns
testMatch: [
'<rootDir>/tests/**/*.test.(ts|tsx|js|jsx)',
'<rootDir>/src/**/__tests__/**/*.(ts|tsx|js|jsx)',
'<rootDir>/src/**/*.(test|spec).(ts|tsx|js|jsx)'
],
// Coverage configuration
collectCoverageFrom: [
'src/**/*.{ts,tsx}',
'!src/**/*.d.ts',
'!src/**/__tests__/**',
'!src/**/node_modules/**',
],
// Transform configuration
transform: {
'^.+\\.(ts|tsx)$': ['ts-jest', {
useESM: true,
}],
},
// Module file extensions
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
// Ignore patterns
testPathIgnorePatterns: [
'<rootDir>/.next/',
'<rootDir>/node_modules/',
],
// Verbose output
verbose: true,
// Timeout for tests (30 seconds for API calls)
testTimeout: 30000,
};
module.exports = config;