// @ts-check // eslint-disable-next-line import/no-commonjs const esmPackages = require("./jest.esm-packages.js"); /** @type {import('jest').Config} */ // eslint-disable-next-line import/no-commonjs module.exports = { moduleNameMapper: { "\\.(css|less)$": "/frontend/test/__mocks__/styleMock.js", "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)(\\?url)?$": "/frontend/test/__mocks__/fileMock.js", "^cljs/(.*)$": "/target/cljs_dev/$1", "\\.svg\\?(component|source)": "/frontend/test/__mocks__/svgMock.tsx", }, transformIgnorePatterns: [ // Combined pattern for both flat and bun isolated node_modules structures `/node_modules/(?:\\.bun/(?!(${esmPackages.join("|")})@)|(?!\\.bun)(?!(${esmPackages.join("|")})/))`, ], testMatch: ["/frontend/**/*.tz.unit.spec.{js,ts,jsx,tsx}"], modulePaths: [ "/frontend/test", "/frontend/src", "/enterprise/frontend/src", ], setupFiles: [ "/frontend/test/jest-setup.js", "/frontend/test/metabase-bootstrap.js", "/frontend/test/register-visualizations.js", ], globals: { ace: {}, ga: {}, }, coverageDirectory: "./", coverageReporters: ["text", "json-summary"], collectCoverageFrom: ["frontend/src/**/*.{js,ts,jsx,tsx}"], coveragePathIgnorePatterns: ["/node_modules/"], testEnvironment: "jest-environment-jsdom", testTimeout: 30000, };