forked from seb-oss/react-components
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jest.config.js
56 lines (51 loc) · 1.84 KB
/
jest.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/**
* Read the variable `comp` passed with npm command.
* @example
* To test only the App component you
* would run the following command
* `npm test App`
* Multiple components can be tested using
* `npm test Button RadioGroup`
*/
const { argv } = process;
const specific = argv.slice(5, argv.length); // Skipping test properties
const collectCoverageFrom = [];
const testMatch = [];
if (specific.length) {
collectCoverageFrom.push(...extractSpecifics("src/**/%inject%.(ts|tsx|js|jsx)"));
testMatch.push(...extractSpecifics("**/%inject%.test.(ts|tsx|js|jsx)"));
} else {
collectCoverageFrom.push("src/**/*.(ts|tsx|js|jsx)");
testMatch.push("**/*.test.(ts|tsx|js|jsx)");
}
collectCoverageFrom.push("!src/**/index.(ts|js)");
function extractSpecifics(injectTo) {
return specific.map((item) => injectTo.replace("%inject%", item));
}
module.exports = {
setupFilesAfterEnv: ["<rootDir>/setupTests.js"],
testEnvironment: "jsdom",
testMatch,
modulePaths: ["<rootDir>/src", "<rootDir>/node_modules"],
globals: {
NODE_ENV: "test",
},
verbose: true,
moduleFileExtensions: ["ts", "tsx", "js", "jsx", "json"],
transform: {
"^.+\\.jsx?$": require.resolve("babel-jest"),
"^.+\\.tsx?$": "ts-jest",
},
transformIgnorePatterns: ["<rootDir>/node_modules/(?!(react|@sebgroup/frontend-tools)/)"],
testEnvironment: "node",
moduleNameMapper: {
"aurelia-(.*)": "<rootDir>/node_modules/$1",
"\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
"\\.(css|less|scss)$": "<rootDir>/__mocks__/styleMock.js",
},
// some coverage and results processing options
collectCoverage: true,
collectCoverageFrom,
coverageDirectory: "./coverage",
coverageReporters: ["json", "lcov", "text"],
};