Skip to content

Commit e09097a

Browse files
SimenBSunil Pai
authored and
Sunil Pai
committed
chore: upgrade to jest 24 (#15778)
* chore: upgrade to jest 24 * download react-is from npm manually
1 parent 5943b1d commit e09097a

File tree

13 files changed

+781
-681
lines changed

13 files changed

+781
-681
lines changed

package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,15 @@
6262
"google-closure-compiler": "20190301.0.0",
6363
"gzip-size": "^3.0.0",
6464
"jasmine-check": "^1.0.0-rc.0",
65-
"jest": "^23",
66-
"jest-diff": "^23",
65+
"jest": "^24.9.0",
66+
"jest-diff": "^24.9.0",
6767
"jest-snapshot-serializer-raw": "^1.1.0",
6868
"minimatch": "^3.0.4",
6969
"minimist": "^1.2.0",
7070
"mkdirp": "^0.5.1",
7171
"ncp": "^2.0.0",
7272
"object-assign": "^4.1.1",
73+
"pacote": "^9.5.6",
7374
"prettier": "1.13.7",
7475
"prop-types": "^15.6.2",
7576
"random-seed": "^0.3.0",
@@ -100,7 +101,7 @@
100101
"lint": "node ./scripts/tasks/eslint.js",
101102
"lint-build": "node ./scripts/rollup/validate/index.js",
102103
"extract-errors": "yarn build --type=dev --extract-errors",
103-
"postinstall": "node node_modules/fbjs-scripts/node/check-dev-engines.js package.json && node ./scripts/flow/createFlowConfigs.js",
104+
"postinstall": "node node_modules/fbjs-scripts/node/check-dev-engines.js package.json && node ./scripts/flow/createFlowConfigs.js && node ./scripts/yarn/downloadReactIsForPrettyFormat.js",
104105
"debug-test": "cross-env NODE_ENV=development node --inspect-brk node_modules/.bin/jest --config ./scripts/jest/config.source.js --runInBand",
105106
"test": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.source.js",
106107
"test-persistent": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.source-persistent.js",

packages/jest-mock-scheduler/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
},
2020
"homepage": "https://reactjs.org/",
2121
"peerDependencies": {
22-
"jest": "^23.0.1",
22+
"jest": "^23.0.1 || ^24.0.0",
2323
"scheduler": "^0.15.0"
2424
},
2525
"files": [

packages/jest-react/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
},
2020
"homepage": "https://reactjs.org/",
2121
"peerDependencies": {
22-
"jest": "^23.0.1",
22+
"jest": "^23.0.1 || ^24.0.0",
2323
"react": "^16.0.0",
2424
"react-test-renderer": "^16.0.0"
2525
},

packages/react-devtools-extensions/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
"archiver": "^3.0.0",
2626
"babel-core": "^7.0.0-bridge",
2727
"babel-eslint": "^9.0.0",
28-
"babel-jest": "^24.7.1",
2928
"babel-loader": "^8.0.4",
3029
"chrome-launch": "^1.1.4",
3130
"child-process-promise": "^2.2.1",

packages/react-devtools-inline/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
"@babel/preset-react": "^7.0.0",
3434
"babel-core": "^7.0.0-bridge",
3535
"babel-eslint": "^9.0.0",
36-
"babel-jest": "^24.7.1",
3736
"babel-loader": "^8.0.4",
3837
"cross-env": "^3.1.4",
3938
"css-loader": "^1.0.1",

packages/react-devtools-shared/src/__tests__/utils.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ export function act(callback: Function): void {
2525
});
2626

2727
// Flush Bridge operations
28-
while (global.mockGetTimersCount() > 0) {
28+
while (jest.getTimerCount() > 0) {
2929
actDOM(() => {
3030
actTestRenderer(() => {
3131
jest.runAllTimers();
@@ -49,8 +49,7 @@ export async function actAsync(
4949
});
5050

5151
if (recursivelyFlush) {
52-
// TODO (Jest v24) Replace with jest.getTimerCount() after we upgrade Jest
53-
while (global.mockGetTimersCount() > 0) {
52+
while (jest.getTimerCount() > 0) {
5453
// $FlowFixMe Flow doens't know about "await act()" yet
5554
await actDOM(async () => {
5655
await actTestRenderer(async () => {

packages/react-devtools-shell/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
"@babel/preset-react": "^7.0.0",
2222
"babel-core": "^7.0.0-bridge",
2323
"babel-eslint": "^9.0.0",
24-
"babel-jest": "^24.7.1",
2524
"babel-loader": "^8.0.4",
2625
"cross-env": "^3.1.4",
2726
"css-loader": "^1.0.1",

packages/react-test-renderer/src/__tests__/ReactTestRendererAsync-test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ describe('ReactTestRendererAsync', () => {
160160

161161
expect(() =>
162162
expect(Scheduler).toFlushAndYieldThrough(['foo', 'baz']),
163-
).toThrow('Expected value to equal:');
163+
).toThrow('// deep equality');
164164
});
165165

166166
it('toFlushAndYield', () => {
@@ -181,7 +181,7 @@ describe('ReactTestRendererAsync', () => {
181181
);
182182

183183
expect(() => expect(Scheduler).toFlushWithoutYielding()).toThrowError(
184-
'Expected value to equal:',
184+
'// deep equality',
185185
);
186186

187187
renderer.update(
@@ -193,7 +193,7 @@ describe('ReactTestRendererAsync', () => {
193193
);
194194

195195
expect(() => expect(Scheduler).toFlushAndYield(['foo', 'baz'])).toThrow(
196-
'Expected value to equal:',
196+
'// deep equality',
197197
);
198198
});
199199

@@ -254,7 +254,7 @@ describe('ReactTestRendererAsync', () => {
254254

255255
ReactTestRenderer.create(<App />);
256256
expect(() => expect(Scheduler).toHaveYielded(['A', 'B'])).toThrow(
257-
'Expected value to equal:',
257+
'// deep equality',
258258
);
259259
});
260260

scripts/jest/config.base.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ module.exports = {
1212
'.*': require.resolve('./preprocessor.js'),
1313
},
1414
setupFiles: [require.resolve('./setupEnvironment.js')],
15-
setupTestFrameworkScriptFile: require.resolve('./setupTests.js'),
15+
setupFilesAfterEnv: [require.resolve('./setupTests.js')],
1616
// Only include files directly in __tests__, not in nested folders.
1717
testRegex: '/__tests__/[^/]*(\\.js|\\.coffee|[^d]\\.ts)$',
1818
moduleFileExtensions: ['js', 'json', 'node', 'coffee', 'ts'],

scripts/jest/config.build-devtools.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ module.exports = Object.assign({}, baseConfig, {
6060
'../../packages/react-devtools-shared/src/__tests__/setupEnv.js'
6161
),
6262
],
63-
// TODO (Jest v24) Rename "setupFilesAfterEnv" after Jest upgrade
64-
setupTestFrameworkScriptFile: require.resolve(
65-
'../../packages/react-devtools-shared/src/__tests__/setupTests.js'
66-
),
63+
setupFilesAfterEnv: [
64+
require.resolve(
65+
'../../packages/react-devtools-shared/src/__tests__/setupTests.js'
66+
),
67+
],
6768
});

scripts/jest/preprocessor.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ module.exports = {
6262
if (filePath.match(/\.ts$/) && !filePath.match(/\.d\.ts$/)) {
6363
return tsPreprocessor.compile(src, filePath);
6464
}
65+
if (filePath.match(/\.json$/)) {
66+
return src;
67+
}
6568
if (!filePath.match(/\/third_party\//)) {
6669
// for test files, we also apply the async-await transform, but we want to
6770
// make sure we don't accidentally apply that transform to product code.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
'use strict';
2+
3+
const path = require('path');
4+
const pacote = require('pacote');
5+
const rimraf = require('rimraf');
6+
const prettyFormatPkg = require('pretty-format/package.json');
7+
const prettyFormatPkgPath = require.resolve('pretty-format/package.json');
8+
9+
const reactIsDependencyVersion = prettyFormatPkg.dependencies['react-is'];
10+
11+
if (!reactIsDependencyVersion) {
12+
throw new Error('Unable to find `react-is` dependency in `pretty-format`');
13+
}
14+
15+
const prettyFormatNodeModulesReactIsDir = path.join(
16+
path.dirname(prettyFormatPkgPath),
17+
'node_modules/react-is'
18+
);
19+
20+
rimraf.sync(prettyFormatNodeModulesReactIsDir);
21+
22+
pacote
23+
.extract(
24+
`react-is@${reactIsDependencyVersion}`,
25+
prettyFormatNodeModulesReactIsDir
26+
)
27+
.catch(error => {
28+
console.error(error);
29+
process.exitCode = 1;
30+
});

0 commit comments

Comments
 (0)