const transformNodeModules = ["@elastic/eui", "uuid"]; module.exports = { roots: ["/src"], collectCoverageFrom: ["src/**/*.{js,jsx,ts,tsx}", "!src/**/*.d.ts"], setupFiles: ["react-app-polyfill/jsdom"], setupFilesAfterEnv: ["/src/setupTests.ts"], testMatch: [ "/src/**/__tests__/**/*.{js,jsx,ts,tsx}", "/src/**/*.{spec,test}.{js,jsx,ts,tsx}", ], // Couldn't get tests working with msw 2 in jsdom or jest-fixed-jsdom, // happy-dom finally worked with added globals testEnvironment: "@happy-dom/jest-environment", // https://mswjs.io/docs/migrations/1.x-to-2.x#cannot-find-module-mswnode-jsdom testEnvironmentOptions: { customExportConditions: [""], }, transform: { "^.+\\.(js|jsx|mjs|cjs|ts|tsx)$": "/config/jest/babelTransform.js", "^.+\\.css$": "/config/jest/cssTransform.js", "^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|json)$)": "/config/jest/fileTransform.js", }, transformIgnorePatterns: [ `[/\\\\]node_modules[/\\\\](?!(${transformNodeModules.map((name) => name.replaceAll("/", "[/\\\\]")).join("|")})[/\\\\])`, "^.+\\.module\\.(css|sass|scss)$", ], modulePaths: [], moduleNameMapper: { "^react-native$": "react-native-web", "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy", "chroma-js": "/node_modules/chroma-js/dist/chroma.min.cjs", }, moduleFileExtensions: [ "web.js", "js", "web.ts", "ts", "web.tsx", "tsx", "json", "web.jsx", "jsx", "node", ], watchPlugins: [ "jest-watch-typeahead/filename", "jest-watch-typeahead/testname", ], resetMocks: true, };