-
Notifications
You must be signed in to change notification settings - Fork 0
/
jest.config.js
72 lines (68 loc) · 2.35 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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
const path = require('path');
const glob = require('glob');
const fs = require('fs');
const lernaJson = require('./lerna.json');
const packagesIgnorePatterns = lernaJson.packages.map(packagePath => (
`<rootDir>/${packagePath.replace(/\*/gi, '[^/]+')}/(lib|es|dist)/`
));
const coveragePatterns = lernaJson.packages.reduce((items, packageGlob) => ([
...items,
...(glob.sync(packageGlob).map(packagePath => (
`${packagePath}/src/**/*.{js,jsx}`
))),
]), []);
const moduleNameMapper = lernaJson.packages.reduce((totalMap, packageGlob) => {
const packagePaths = glob.sync(packageGlob);
const packagesMap = packagePaths.reduce((map, packagePath) => {
const packageJsonPath = path.join(__dirname, packagePath, '/package.json');
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
return {
...map,
[`${packageJson.name}$`]: `<rootDir>/${packagePath}/src/index.js`,
};
}, {});
return {
...totalMap,
...packagesMap,
};
}, {});
module.exports = {
globals: {
__DEV__: true,
},
setupFiles: [
'<rootDir>/__tests__/shim.js',
'<rootDir>/__tests__/setup.js',
],
testPathIgnorePatterns: [
...packagesIgnorePatterns,
'<rootDir>/packages/generator-panneau/lib/',
'<rootDir>/packages/generator-panneau/src/templates/',
'<rootDir>/packages/generator-panneau/src/generators/[^/]+/templates',
'<rootDir>/__tests__/shim.js',
'<rootDir>/__tests__/setup.js',
'<rootDir>/__tests__/storyshots.test.js',
],
modulePathIgnorePatterns: [
...packagesIgnorePatterns,
],
moduleNameMapper: {
'\\.(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',
'react-sortable-hoc': '<rootDir>/__mocks__/react-sortable-hoc.js',
jquery: require.resolve('jquery-slim'),
...moduleNameMapper,
},
transformIgnorePatterns: [
'node_modules/(?!(@folklore|react-intl)/)',
],
collectCoverage: true,
collectCoverageFrom: [
...coveragePatterns,
'!**/node_modules/**',
'!**/vendor/**',
'!**/templates/**',
'!**/__tests__/**',
'!**/__stories__/**',
],
};