Skip to content

Commit 27f2aa8

Browse files
committed
Refactor Jest configuration to minimize differences between unit/react
1 parent c108b21 commit 27f2aa8

5 files changed

+42
-86
lines changed

jest.config.js

+32-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,35 @@
1+
const _baseConfig = (project, testExtension) => ({
2+
displayName: project,
3+
roots: ['<rootDir>'],
4+
5+
testMatch: [`**/*.test.${testExtension}`],
6+
testPathIgnorePatterns: ['/node_modules/', '/e2e/'],
7+
8+
transform: {
9+
'^.+\\.(js|ts|tsx)$': [
10+
'ts-jest',
11+
{
12+
tsconfig: project === 'react' ? ({ esModuleInterop: true }) : false,
13+
isolatedModules: project === 'react',
14+
},
15+
],
16+
},
17+
transformIgnorePatterns: ['/node_modules/(?!(@vscode/webview-ui-toolkit/|@microsoft/|exenv-es6/))'],
18+
19+
collectCoverage: true,
20+
collectCoverageFrom: [
21+
'src/**/*.{ts,tsx}',
22+
'!src/**/*.d.ts',
23+
'!src/**/*.{spec,test}.{ts,tsx,js,jsx}', // Exclude test files
24+
],
25+
coverageDirectory: `coverage/${project}`,
26+
coverageReporters: ['json', 'lcov', 'text-summary', 'clover'],
27+
});
28+
129
module.exports = {
2-
projects: ['<rootDir>/jest.react.config.js', '<rootDir>/jest.unit.config.js'],
30+
projects: ['<rootDir>/jest.*.config.js'],
331
verbose: true,
32+
33+
// custom exports for individual projects
34+
_baseConfig,
435
};

jest.react.config.js

+5-23
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,8 @@
1+
const { _baseConfig } = require('./jest.config');
2+
13
module.exports = {
2-
displayName: 'react',
3-
roots: ['<rootDir>'],
4-
testMatch: ['**/react/**/*.test.+(ts|tsx)'],
5-
transform: {
6-
'^.+\\.(min.js|js|ts|tsx)$': [
7-
'ts-jest',
8-
{
9-
tsconfig: 'tsconfig.react.json',
10-
isolatedModules: true,
11-
},
12-
],
13-
},
14-
transformIgnorePatterns: ['/node_modules/(?!(@vscode/webview-ui-toolkit/|@microsoft/|exenv-es6/))'],
15-
testPathIgnorePatterns: ['/node_modules/', '/e2e/', '!/src/react/'],
16-
setupFilesAfterEnv: ['<rootDir>/setupTestsReact.js'],
4+
..._baseConfig('react', 'tsx'),
5+
176
testEnvironment: 'jsdom',
18-
collectCoverage: true,
19-
collectCoverageFrom: [
20-
'src/react/**/*.{ts,tsx}',
21-
'!src/**/*.d.ts',
22-
'!src/**/*.{spec,test}.{ts,tsx,js,jsx}', // Exclude test files
23-
],
24-
coverageDirectory: 'coverage/react',
25-
coverageReporters: ['json', 'lcov', 'text-summary', 'clover'],
7+
setupFilesAfterEnv: ['<rootDir>/setupTestsReact.js'],
268
};

jest.unit.config.js

+4-22
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,7 @@
1+
const { _baseConfig } = require('./jest.config');
2+
13
module.exports = {
2-
displayName: 'unit',
3-
roots: ['<rootDir>'],
4-
testMatch: ['**/test/**/*.+(ts|ts|js)', '**/?(*.)+(spec|test).+(ts|ts|js)'],
5-
transform: {
6-
'^.+\\.(min.js|ts|tsx)$': [
7-
'ts-jest',
8-
{
9-
tsconfig: 'tsconfig.json',
10-
},
11-
],
12-
},
13-
transformIgnorePatterns: ['/node_modules/'],
14-
testPathIgnorePatterns: ['/node_modules/', '/e2e/', '/src/react/'],
4+
..._baseConfig('unit', 'ts'),
5+
156
setupFilesAfterEnv: ['<rootDir>/setupTests.js'],
16-
collectCoverage: true,
17-
collectCoverageFrom: [
18-
'src/**/*.{ts,tsx}',
19-
'!src/**/*.d.ts',
20-
'!src/**/*.{spec,test}.{ts,tsx,js,jsx}', // Exclude test files
21-
'!src/react/**/*.{ts,tsx}',
22-
],
23-
coverageDirectory: 'coverage/unit',
24-
coverageReporters: ['json', 'lcov', 'text-summary', 'clover'],
257
};

tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
"noUnusedLocals": true,
2323
"typeRoots": ["node_modules/@types", "src/typings/"],
2424
},
25-
"include": ["**/src/**/*", "**/test/**/*", "webpack.*.js", "jest.config.js", "jest.unit.config.js", "jest.react.config.js", "**/stories/**/*", "e2e/**/*"],
25+
"include": ["**/src/**/*", "webpack.*.js", "e2e/**/*"],
2626
"exclude": [
2727
"out",
2828
"node_modules",

tsconfig.react.json

-39
This file was deleted.

0 commit comments

Comments
 (0)