-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Expand file tree
/
Copy pathjest.integration.config.js
More file actions
75 lines (74 loc) · 2.76 KB
/
jest.integration.config.js
File metadata and controls
75 lines (74 loc) · 2.76 KB
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
73
74
75
const consoleReporterRules = require('./test/jest/console-reporter-rules-integration');
module.exports = {
collectCoverageFrom: [
'<rootDir>/shared/**/*.(js|ts|tsx)',
'<rootDir>/ui/**/*.(js|ts|tsx)',
],
coverageDirectory: './coverage/integration',
coveragePathIgnorePatterns: ['.stories.*', '.snap', '.test.(js|ts|tsx)'],
coverageReporters: ['html', 'json'],
maxWorkers: '50%',
moduleNameMapper: {},
// The path to the Prettier executable used to format snapshots
// Jest doesn't support Prettier 3 yet, so we use Prettier 2
prettierPath: require.resolve('prettier-2'),
reporters: [
// Console baseline reporter MUST be first to capture raw console messages
// before jest-clean-console-reporter processes them
[
'<rootDir>/test/jest/console-baseline-reporter.js',
{
testType: 'integration',
},
],
[
'jest-clean-console-reporter',
{
rules: consoleReporterRules,
},
],
'summary',
[
'jest-junit',
{
outputDirectory: 'test/test-results/integration',
outputName: 'junit.xml',
addFileAttribute: 'true',
},
],
],
restoreMocks: true,
setupFiles: [
'jest-canvas-mock',
'<rootDir>/test/integration/config/setup.js',
'<rootDir>/test/integration/config/env.js',
],
setupFilesAfterEnv: ['<rootDir>/test/integration/config/setupAfter.js'],
testMatch: ['<rootDir>/test/integration/**/*.test.(js|ts|tsx)'],
testPathIgnorePatterns: ['<rootDir>/test/integration/config/*'],
testTimeout: 15000,
// We have to specify the environment we are running in, which is jsdom. The
// default is 'node'. This can be modified *per file* using a comment at the
// head of the file. So it may be worthwhile to switch to 'node' in any
// background tests.
testEnvironment: 'jsdom',
testEnvironmentOptions: {
customExportConditions: ['node', 'node-addons'],
},
workerIdleMemoryLimit: '500MB',
transform: {
// Use babel-jest to transpile tests with the next/babel preset
// https://jestjs.io/docs/configuration#transform-objectstring-pathtotransformer--pathtotransformer-object
'^.+\\.(js|jsx|ts|tsx)$': 'babel-jest',
// Use custom transform for pre-bundled CSS to avoid jest-preview's CSS inlining
// which truncates large CSS files and loses design-token variables
'test/integration/config/assets/index\\.css$':
'<rootDir>/test/integration/config/transforms/css-link.js',
'^(?!.*\\.(js|jsx|mjs|cjs|ts|tsx|css|json)$)':
'jest-preview/transforms/file',
},
transformIgnorePatterns: ['/node_modules/'],
// Ensure console output is buffered (not streamed) so reporters can access testResult.console
// Without this, Jest uses verbose mode for single-file runs which bypasses buffering
verbose: false,
};