-
Notifications
You must be signed in to change notification settings - Fork 44
/
jest-preset.js
61 lines (57 loc) · 1.81 KB
/
jest-preset.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
const colors = require('colors');
const importFrom = require('import-from');
const jestConfig = importFrom.silent(require.resolve('jest'), 'jest-config');
const [jestMajorVersion] = require('jest/package.json').version.split('.');
if (!jestConfig) {
throw new Error(
'Could not initialize jest-preset-hops. Jest Config is missing.'
);
}
if (Number(jestMajorVersion) < 26) {
console.error(
colors.red(
'Error: You are using an unsupported version of Jest! Please upgrade to Jest v26.'
)
);
}
const useEsbuild = process.env.USE_EXPERIMENTAL_ESBUILD === 'true';
const jsTransform = useEsbuild
? require.resolve('./transforms/esbuild.js')
: require.resolve('./transforms/babel.js');
const tsTransform = useEsbuild
? require.resolve('./transforms/esbuild.js')
: require.resolve('ts-jest');
module.exports = {
globals: useEsbuild
? {}
: {
'ts-jest': {
babelConfig: require('./transforms/babel.js').babelConfig,
useESM: true,
},
},
moduleNameMapper: {
'^.+\\.(png|gif|jpe?g|webp|html|svg|((o|t)tf)|woff2?|ico)$':
require.resolve('./mocks/file.js'),
'^.+\\.tpl$': require.resolve('./mocks/tpl.js'),
'^.+\\.css(\\?global)?$': require.resolve('identity-obj-proxy'),
'^hops$': require.resolve('./mocks/hops.js'),
},
testMatch: [
...jestConfig.defaults.testMatch,
'**/__tests__/**/*.ts?(x)',
'**/?(*.)+(spec|test).ts?(x)',
],
transform: {
'^.+\\.(js|jsx|mjs)$': jsTransform,
'^.+\\.(ts|tsx)$': tsTransform,
'^.+\\.(gql|graphql)$': require.resolve('./transforms/graphql.js'),
},
transformIgnorePatterns: [],
setupFiles: useEsbuild
? []
: [require.resolve('regenerator-runtime/runtime')],
// fixes: https://github.com/facebook/jest/issues/6766
testURL: 'http://localhost',
testEnvironment: 'jsdom',
};