-
Notifications
You must be signed in to change notification settings - Fork 0
/
jest.config.js
34 lines (32 loc) · 1.04 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
const JEST_ALIAS_REPLACE_REGEX = /\*$/;
/**
* Get the aliases for jest using the provided js config.
*
* @param {string} jsConfigPath The jsconfig path to load
* @returns An object with the jest aliases for the moduleMapper
*/
function getJestAliases(jsConfigPath) {
const jsConfig = require(jsConfigPath);
const {
compilerOptions: { paths },
} = jsConfig;
return Object.keys(paths).reduce((modules, alias) => {
const jestAlias = `^${alias.replace(JEST_ALIAS_REPLACE_REGEX, '(.+)')}`;
const jestPath = `<rootDir>${paths[alias][0].replace(
JEST_ALIAS_REPLACE_REGEX,
'$1'
)}`;
modules[jestAlias] = jestPath;
return modules;
}, {});
}
module.exports = {
moduleNameMapper: {
'\\.s[ac]ss$': '<rootDir>/__mocks__/styleMock.js',
'\\.jpg\\?(.+)': '<rootDir>/__mocks__/imagesMock.js',
...getJestAliases('./jsconfig.json'),
},
setupFiles: ['<rootDir>/src/__setup__/setupTests.js'],
setupFilesAfterEnv: ['<rootDir>/src/__setup__/setupTestsAfterEnv.js'],
collectCoverageFrom: ['src/**/*.js(x)?'],
};