@storm-software/testing-tools
Version:
A package containing various testing tools used by Storm workspaces to drive unit and e2e testing.
64 lines (63 loc) • 2.86 kB
JavaScript
// src/jest/declare-workspace.ts
import { getJestProjectsAsync } from "@nx/jest";
import defu from "defu";
function declareWorkspace(config = {}) {
return async () => defu(config, {
/**
* When the projects configuration is provided with an array of paths or glob patterns, Jest will run tests in all of the specified projects at the same time.
* This is great for monorepos or when working on multiple projects at the same time.
*/
projects: [...await getJestProjectsAsync(), "<rootDir>/jest.config.ts"],
/**
* Indicates whether the coverage information should be collected while executing the test. Because this retrofits all
* executed files with coverage collection statements, it may significantly slow down your tests. Default: false
*/
collectCoverage: process.env.CI ? true : false,
/**
* An array of glob patterns indicating a set of files for which coverage information should be collected.
* If a file matches the specified glob pattern, coverage information will be collected for it even if no tests exist
* for this file and it's never required in the test suite. Default: undefined
*/
// collectCoverageFrom: ["**/*(!*.spec).tsx", "**/*(!*.spec).ts"],
/**
* The directory where Jest should output its coverage files. Default: undefined
*/
coverageDirectory: "<rootDir>/coverage",
/**
* An array of regexp pattern strings that are matched against all file paths before executing the test. If the file path
* matches any of the patterns, coverage information will be skipped.
*/
coveragePathIgnorePatterns: [
"\\.spec\\.ts$",
"\\.test\\.ts$",
"<rootDir>/dist",
"<rootDir>/tests",
"<rootDir>/__generated__",
"<rootDir>/node_modules"
],
/**
* The test environment that will be used for testing. The default environment in Jest is a Node.js environment.
* If you are building a web app, you can use a browser-like environment through jsdom instead.
*/
testEnvironment: "jest-environment-jsdom",
/**
* A list of reporter names that Jest uses when writing coverage reports. Any istanbul reporter can be used.
* Default: ["json", "lcov", "text"]
*/
coverageReporters: ["lcov", "json"],
/**
* Setup files that run before each test suite.
*
* @remarks
* This is useful for setting up global variables or configurations that your tests need.
*/
setupFiles: ["./node_modules/@storm-software/testing-tools/jest/setup"],
moduleNameMapper: {
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "@storm-software/testing-tools/jest/__mocks__/file.mock.js",
"\\.(css|less)$": "@storm-software/testing-tools/jest/__mocks__/style.mock.js"
}
});
}
export {
declareWorkspace
};