/* Copyright 2025 Element Creations Ltd. SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial Please see LICENSE files in the repository root for full details. */ import { env } from "process"; import type { Config } from "jest"; const config: Config = { testEnvironment: "jsdom", testEnvironmentOptions: { url: "http://localhost/", }, testMatch: ["/src/**/*.test.[tj]s?(x)"], setupFilesAfterEnv: ["/src/test/setupTests.ts"], moduleNameMapper: { // Support CSS module "\\.(module.css)$": "identity-obj-proxy", "\\.(css|scss|pcss)$": "/__mocks__/cssMock.js", "\\.(gif|png|ttf|woff2)$": "/__mocks__/imageMock.js", "\\.svg$": "/__mocks__/svg.js", "\\$webapp/i18n/languages.json": "/../../__mocks__/languages.json", "^react$": "/node_modules/react", "^react-dom$": "/node_modules/react-dom", "waveWorker\\.min\\.js": "/__mocks__/empty.js", "context-filter-polyfill": "/__mocks__/empty.js", "workers/(.+)Factory": "/__mocks__/workerFactoryMock.js", }, transformIgnorePatterns: [ "/node_modules/(?!(mime|matrix-js-sdk|uuid|p-retry|is-network-error|react-merge-refs)).+$", ], collectCoverageFrom: [ "/src/**/*.{js,ts,tsx}", "/packages/**/*.{js,ts,tsx}", // Coverage chokes on type definition files "!/src/**/*.d.ts", ], coverageReporters: ["text-summary", "lcov"], testResultsProcessor: "@casualbot/jest-sonar-reporter", prettierPath: null, moduleDirectories: ["node_modules", "./src/test/utils"], }; // if we're running under GHA, enable the GHA reporter if (env["GITHUB_ACTIONS"] !== undefined) { const reporters: Config["reporters"] = [["github-actions", { silent: false }], "summary"]; // if we're running against the develop branch, also enable the slow test reporter if (env["GITHUB_REF"] == "refs/heads/develop") { reporters.push("/test/slowReporter.cjs"); } config.reporters = reporters; } export default config;