Skip to content

Commit ffe2352

Browse files
authored
chore: move @jest/test-utils reference (#13468)
1 parent 48ddbf4 commit ffe2352

File tree

41 files changed

+108
-62
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+108
-62
lines changed

e2e/tsconfig.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
"compilerOptions": {
44
"rootDir": "./"
55
},
6-
"include": ["./**/*"]
6+
"include": ["./**/*"],
7+
"references": [{"path": "../packages/test-utils"}]
78
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/babel-jest/tsconfig.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
"include": ["./src/**/*"],
88
"exclude": ["./**/__tests__/**/*"],
99
// TODO: include `babel-preset-jest` if it's ever in TS even though we don't care about its types
10-
"references": [{"path": "../jest-transform"}, {"path": "../test-utils"}]
10+
"references": [{"path": "../jest-transform"}]
1111
}
+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/expect/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
{"path": "../jest-get-type"},
1313
{"path": "../jest-matcher-utils"},
1414
{"path": "../jest-message-util"},
15-
{"path": "../jest-util"},
16-
{"path": "../test-utils"}
15+
{"path": "../jest-util"}
1716
]
1817
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-console/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"references": [
1010
{"path": "../jest-message-util"},
1111
{"path": "../jest-types"},
12-
{"path": "../jest-util"},
13-
{"path": "../test-utils"}
12+
{"path": "../jest-util"}
1413
]
1514
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
3-
"compilerOptions": {
4-
"rootDir": "../"
5-
},
6-
"include": ["../**/*"]
3+
"include": ["./**/*"],
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
75
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../../"}]
4+
"references": [{"path": "../../../"}, {"path": "../../../../test-utils"}]
55
}

packages/jest-core/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
{"path": "../jest-util"},
2727
{"path": "../jest-validate"},
2828
{"path": "../jest-watcher"},
29-
{"path": "../pretty-format"},
30-
{"path": "../test-utils"}
29+
{"path": "../pretty-format"}
3130
]
3231
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-diff/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
"references": [
1010
{"path": "../diff-sequences"},
1111
{"path": "../jest-get-type"},
12-
{"path": "../pretty-format"},
13-
{"path": "../test-utils"}
12+
{"path": "../pretty-format"}
1413
]
1514
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-environment-jsdom/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
{"path": "../jest-fake-timers"},
1212
{"path": "../jest-mock"},
1313
{"path": "../jest-types"},
14-
{"path": "../jest-util"},
15-
{"path": "../test-utils"}
14+
{"path": "../jest-util"}
1615
]
1716
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-environment-node/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
{"path": "../jest-fake-timers"},
1212
{"path": "../jest-mock"},
1313
{"path": "../jest-types"},
14-
{"path": "../jest-util"},
15-
{"path": "../test-utils"}
14+
{"path": "../jest-util"}
1615
]
1716
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-fake-timers/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
{"path": "../jest-message-util"},
1212
{"path": "../jest-mock"},
1313
{"path": "../jest-types"},
14-
{"path": "../jest-util"},
15-
{"path": "../test-utils"}
14+
{"path": "../jest-util"}
1615
]
1716
}

packages/jest-haste-map/package.json

-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
"walker": "^1.0.8"
3131
},
3232
"devDependencies": {
33-
"@jest/test-utils": "workspace:^",
3433
"@types/fb-watchman": "^2.0.0",
3534
"@types/micromatch": "^4.0.1",
3635
"slash": "^3.0.0"

packages/jest-haste-map/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
{"path": "../jest-regex-util"},
1111
{"path": "../jest-types"},
1212
{"path": "../jest-util"},
13-
{"path": "../jest-worker"},
14-
{"path": "../test-utils"}
13+
{"path": "../jest-worker"}
1514
]
1615
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-matcher-utils/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
"references": [
1111
{"path": "../jest-diff"},
1212
{"path": "../jest-get-type"},
13-
{"path": "../pretty-format"},
14-
{"path": "../test-utils"}
13+
{"path": "../pretty-format"}
1514
]
1615
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-reporters/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
{"path": "../jest-transform"},
1515
{"path": "../jest-types"},
1616
{"path": "../jest-util"},
17-
{"path": "../jest-worker"},
18-
{"path": "../test-utils"}
17+
{"path": "../jest-worker"}
1918
]
2019
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-resolve-dependencies/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
{"path": "../jest-resolve"},
1313
{"path": "../jest-runtime"},
1414
{"path": "../jest-snapshot"},
15-
{"path": "../jest-types"},
16-
{"path": "../test-utils"}
15+
{"path": "../jest-types"}
1716
]
1817
}

packages/jest-runner/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
"source-map-support": "0.5.13"
4141
},
4242
"devDependencies": {
43+
"@jest/test-utils": "workspace:^",
4344
"@tsd/typescript": "^4.9.0",
4445
"@types/exit": "^0.1.30",
4546
"@types/graceful-fs": "^4.1.3",
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-runtime/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
{"path": "../jest-test-result"},
2424
{"path": "../jest-transform"},
2525
{"path": "../jest-types"},
26-
{"path": "../jest-util"},
27-
{"path": "../test-utils"}
26+
{"path": "../jest-util"}
2827
]
2928
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-snapshot/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
{"path": "../jest-transform"},
1818
{"path": "../jest-types"},
1919
{"path": "../jest-util"},
20-
{"path": "../pretty-format"},
21-
{"path": "../test-utils"}
20+
{"path": "../pretty-format"}
2221
]
2322
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-test-sequencer/tsconfig.json

+1-5
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,5 @@
66
},
77
"include": ["./src/**/*"],
88
"exclude": ["./**/__tests__/**/*"],
9-
"references": [
10-
{"path": "../jest-haste-map"},
11-
{"path": "../jest-test-result"},
12-
{"path": "../test-utils"}
13-
]
9+
"references": [{"path": "../jest-haste-map"}, {"path": "../jest-test-result"}]
1410
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"extends": "../../../../tsconfig.test.json",
33
"include": ["./**/*"],
4-
"references": [{"path": "../../"}]
4+
"references": [{"path": "../../"}, {"path": "../../../test-utils"}]
55
}

packages/jest-transform/tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
{"path": "../jest-haste-map"},
1111
{"path": "../jest-regex-util"},
1212
{"path": "../jest-types"},
13-
{"path": "../jest-util"},
14-
{"path": "../test-utils"}
13+
{"path": "../jest-util"}
1514
]
1615
}

packages/test-utils/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"./package.json": "./package.json"
1313
},
1414
"dependencies": {
15+
"@jest/globals": "workspace:^",
1516
"@jest/types": "workspace:^",
1617
"@types/node": "*",
1718
"ansi-regex": "^5.0.1",

packages/test-utils/src/ConditionalTest.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
* LICENSE file in the root directory of this source tree.
66
*/
77

8-
import semver = require('semver');
9-
import type {Global} from '@jest/types';
8+
/* eslint-disable jest/no-focused-tests */
109

11-
declare const describe: Global.TestFrameworkGlobals['describe'];
12-
declare const test: Global.TestFrameworkGlobals['test'];
10+
import semver = require('semver');
11+
import {describe, test} from '@jest/globals';
1312

1413
export function isJestJasmineRun(): boolean {
1514
return process.env.JEST_JASMINE === '1';

packages/test-utils/tsconfig.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,9 @@
55
"outDir": "build"
66
},
77
"include": ["./src/**/*"],
8-
"references": [{"path": "../jest-types"}, {"path": "../pretty-format"}]
8+
"references": [
9+
{"path": "../jest-globals"},
10+
{"path": "../jest-types"},
11+
{"path": "../pretty-format"}
12+
]
913
}

scripts/buildTs.mjs

+60
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,12 @@ packagesWithTs.forEach(({packageDir, pkg}) => {
5757
}
5858
}
5959

60+
// only test files depend on '@jest/test-utils', i.e. it is always a dev dependency
61+
// see additional checks below
62+
if (dep === '@jest/test-utils') {
63+
return false;
64+
}
65+
6066
return true;
6167
})
6268
.map(dep =>
@@ -84,6 +90,60 @@ packagesWithTs.forEach(({packageDir, pkg}) => {
8490
)}\nExpected:\n\n${jestDependenciesOfPackage.join('\n')}`,
8591
);
8692
}
93+
94+
let hasJestTestUtils = Object.keys(pkg.dependencies || {}).includes(
95+
'@jest/test-utils',
96+
);
97+
98+
if (hasJestTestUtils) {
99+
throw new Error(
100+
chalk.red(
101+
`Package '${pkg.name}' declares '@jest/test-utils' as dependency, but it must be declared as dev dependency`,
102+
),
103+
);
104+
}
105+
106+
hasJestTestUtils = Object.keys(pkg.devDependencies || {}).includes(
107+
'@jest/test-utils',
108+
);
109+
110+
const tsConfigPaths = glob.sync('**/__tests__/tsconfig.json', {
111+
absolute: true,
112+
cwd: packageDir,
113+
});
114+
115+
const testUtilsReferences = tsConfigPaths.filter(tsConfigPath => {
116+
const tsConfig = JSON.parse(
117+
stripJsonComments(fs.readFileSync(tsConfigPath, 'utf8')),
118+
);
119+
const references = tsConfig.references.map(({path}) => path);
120+
121+
return references.some(reference => /test-utils$/.test(reference));
122+
});
123+
124+
if (hasJestTestUtils && testUtilsReferences.length === 0) {
125+
throw new Error(
126+
chalk.red(
127+
`Package '${
128+
pkg.name
129+
}' declares '@jest/test-utils' as dev dependency, but it is not referenced in:\n\n${tsConfigPaths.join(
130+
'\n',
131+
)}`,
132+
),
133+
);
134+
}
135+
136+
if (!hasJestTestUtils && testUtilsReferences.length > 0) {
137+
throw new Error(
138+
chalk.red(
139+
`Package '${
140+
pkg.name
141+
}' does not declare '@jest/test-utils' as dev dependency, but it is referenced in:\n\n${testUtilsReferences.join(
142+
'\n',
143+
)}`,
144+
),
145+
);
146+
}
87147
});
88148

89149
const args = [

0 commit comments

Comments
 (0)