jest.config.jsโข1.35 kB
/** @type {import('jest').Config} */
module.exports = {
// Test environment
testEnvironment: 'node',
// Test file patterns
testMatch: [
'**/__tests__/**/*.test.(ts|js)',
'**/(test|spec)/**/*.test.(ts|js)'
],
// TypeScript support
preset: 'ts-jest',
// Transform TypeScript files
transform: {
'^.+\\.ts$': 'ts-jest',
},
// Module file extensions
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
// Coverage settings
collectCoverage: false, // Enable when running coverage tests
collectCoverageFrom: [
'src/**/*.{ts,js}',
'!src/**/*.d.ts',
'!src/**/__tests__/**',
'!src/**/*.test.{ts,js}'
],
coverageDirectory: 'coverage',
coverageReporters: ['text', 'lcov', 'html'],
// Test timeout
testTimeout: 10000,
// Setup files
setupFiles: ['<rootDir>/jest.setup.js'],
setupFilesAfterEnv: [],
// Module name mapping for absolute imports
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1',
},
// Ignore patterns
testPathIgnorePatterns: [
'/node_modules/',
'/dist/',
'/coverage/'
],
// Verbose output
verbose: true,
// Clear mocks between tests
clearMocks: true,
// Global setup/teardown
// globalSetup: '<rootDir>/jest.global-setup.js',
// globalTeardown: '<rootDir>/jest.global-teardown.js',
};