|
1 | 1 | /** |
2 | | - * Jest config |
| 2 | + * Jest project config defaults |
3 | 3 | * |
4 | | - * @type {Config} |
| 4 | + * @type {ProjectConfig} |
5 | 5 | */ |
6 | | -export default { |
7 | | - collectCoverageFrom: ['**/assets/js/**/*.{js,mjs}'], |
8 | | - coverageProvider: 'v8', |
9 | | - // testMatch: ['<rootDir>/**/*.unit.test.{js,mjs}'], |
10 | | - |
11 | | - // Enable GitHub Actions reporter UI |
12 | | - reporters: ['default', 'github-actions'], |
13 | | - |
| 6 | +const config = { |
14 | 7 | cacheDirectory: '<rootDir>/.cache/jest', |
15 | | - coveragePathIgnorePatterns: ['.eslintrc.js', '.test.(js|mjs)'], |
| 8 | + coveragePathIgnorePatterns: ['.eslintrc.js', '.test.(cjs|js)'], |
16 | 9 |
|
17 | 10 | // Enable Babel transforms until Jest supports ESM and `import()` |
18 | 11 | // See: https://jestjs.io/docs/ecmascript-modules |
19 | 12 | transform: { |
20 | | - '^.+\\.(js|cjs)$': ['babel-jest', { rootMode: 'upward' }] |
21 | | - }, |
22 | | - |
23 | | - testEnvironment: 'jsdom', |
| 13 | + '^.+\\.(cjs|js)$': ['babel-jest', { rootMode: 'upward' }] |
| 14 | + } |
| 15 | +} |
24 | 16 |
|
25 | | - setupFilesAfterEnv: ['<rootDir>/jest.setup.js'], |
| 17 | +/** |
| 18 | + * Jest config |
| 19 | + * |
| 20 | + * @type {Config} |
| 21 | + */ |
| 22 | +export default { |
| 23 | + collectCoverageFrom: ['**/assets/js/**/*.{cjs,js}'], |
| 24 | + coverageProvider: 'v8', |
| 25 | + projects: [ |
| 26 | + { |
| 27 | + ...config, |
| 28 | + displayName: 'JavaScript behaviour tests', |
| 29 | + setupFilesAfterEnv: ['<rootDir>/jest.setup.js'], |
| 30 | + testEnvironment: 'jsdom', |
| 31 | + testMatch: ['<rootDir>/**/*.test.{cjs,js}'] |
| 32 | + } |
| 33 | + ], |
26 | 34 |
|
| 35 | + // Reset mocks between tests |
27 | 36 | resetMocks: true, |
28 | 37 | resetModules: true, |
29 | 38 | restoreMocks: true, |
30 | | - clearMocks: true |
| 39 | + clearMocks: true, |
| 40 | + |
| 41 | + // Enable GitHub Actions reporter UI |
| 42 | + reporters: ['default', 'github-actions'] |
31 | 43 | } |
32 | 44 |
|
| 45 | +/** |
| 46 | + * @typedef {Exclude<Config['projects'][0], string>} ProjectConfig |
| 47 | + */ |
| 48 | + |
33 | 49 | /** |
34 | 50 | * @import { Config } from 'jest' |
35 | 51 | */ |
0 commit comments