Files
portfolio/jest.config.ts
2026-01-08 16:27:40 +01:00

39 lines
1.6 KiB
TypeScript

import type { Config } from "jest";
import nextJest from "next/jest.js";
const createJestConfig = nextJest({
// Provide the path to your Next.js app to load next.config.js and .env files in your test environment
dir: "./",
});
// Add any custom config to be passed to Jest
const config: Config = {
coverageProvider: "v8",
testEnvironment: "jsdom",
// Add more setup options before each test is run
setupFilesAfterEnv: ["<rootDir>/jest.setup.ts"],
// Ignore tests inside __mocks__ directory and E2E tests (Playwright)
testPathIgnorePatterns: ["/node_modules/", "/__mocks__/", "/.next/", "/e2e/"],
// Transform react-markdown and other ESM modules
transformIgnorePatterns: [
"node_modules/(?!(react-markdown|remark-.*|rehype-.*|unified|bail|is-plain-obj|trough|vfile|vfile-message|unist-.*|micromark|parse-entities|character-entities|mdast-.*|hast-.*|property-information|space-separated-tokens|comma-separated-tokens|web-namespaces|zwitch|longest-streak|ccount)/)",
],
// Module name mapping to fix haste collision
moduleNameMapper: {
"^@/(.*)$": "<rootDir>/$1",
},
// Exclude problematic directories from haste
modulePathIgnorePatterns: ["<rootDir>/.next/", "<rootDir>/node_modules/", "<rootDir>/e2e/"],
// Clear mocks between tests
clearMocks: true,
// Reset modules between tests
resetMocks: true,
// Restore mocks between tests
restoreMocks: true,
// Max workers for better performance
maxWorkers: "50%",
};
// createJestConfig is exported this way to ensure that next/jest can load the Next.js config which is async
export default createJestConfig(config);