Skip to content

Commit a48593a

Browse files
author
Brian Vaughn
committed
Iterating on DevTools tests: Trying to run tests against pre-build react-dom and react-test-renderers
1 parent ee4806f commit a48593a

File tree

6 files changed

+105
-40
lines changed

6 files changed

+105
-40
lines changed

.circleci/config.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -84,16 +84,6 @@ jobs:
8484
- *run_yarn
8585
- run: yarn test-persistent --maxWorkers=2
8686

87-
test_source_devtools:
88-
docker: *docker
89-
environment: *environment
90-
91-
steps:
92-
- checkout
93-
- *restore_yarn_cache
94-
- *run_yarn
95-
- run: yarn test-devtools --maxWorkers=2
96-
9787
test_source_prod:
9888
docker: *docker
9989
environment: *environment
@@ -168,6 +158,16 @@ jobs:
168158
- *run_yarn
169159
- run: yarn test-build --maxWorkers=2
170160

161+
test_build_devtools:
162+
docker: *docker
163+
environment: *environment
164+
steps:
165+
- checkout
166+
- attach_workspace: *attach_workspace
167+
- *restore_yarn_cache
168+
- *run_yarn
169+
- run: yarn test-build-devtools --maxWorkers=2
170+
171171
test_dom_fixtures:
172172
docker: *docker
173173
environment: *environment

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,13 @@
102102
"postinstall": "node node_modules/fbjs-scripts/node/check-dev-engines.js package.json && node ./scripts/flow/createFlowConfigs.js",
103103
"debug-test": "cross-env NODE_ENV=development node --inspect-brk node_modules/.bin/jest --config ./scripts/jest/config.source.js --runInBand",
104104
"test": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.source.js",
105-
"test-devtools": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.source-devtools.js",
106-
"debug-test-devtools": "cross-env NODE_ENV=development node --inspect-brk node_modules/.bin/jest --config ./scripts/jest/config.source-devtools.js --runInBand",
107105
"test-persistent": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.source-persistent.js",
108106
"debug-test-persistent": "cross-env NODE_ENV=development node --inspect-brk node_modules/.bin/jest --config ./scripts/jest/config.source-persistent.js --runInBand",
109107
"test-prod": "cross-env NODE_ENV=production jest --config ./scripts/jest/config.source.js",
110108
"test-prod-build": "yarn test-build-prod",
111109
"test-build": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.build.js",
112110
"test-build-prod": "cross-env NODE_ENV=production jest --config ./scripts/jest/config.build.js",
111+
"test-build-devtools": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.build-devtools.js",
113112
"test-dom-fixture": "cd fixtures/dom && yarn && yarn prestart && yarn test",
114113
"flow": "node ./scripts/tasks/flow.js",
115114
"flow-ci": "node ./scripts/tasks/flow-ci.js",

packages/react-devtools-shared/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"private": true,
33
"name": "react-devtools-shared",
44
"version": "0.0.0",
5+
"devDependencies": {
6+
"react-15": "npm:react@^15",
7+
"react-dom-15": "npm:react-dom@^15"
8+
},
59
"dependencies": {
610
"@babel/runtime": "^7.0.0",
711
"@reach/menu-button": "^0.1.17",

scripts/jest/config.build-devtools.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
'use strict';
2+
3+
const {readdirSync, statSync} = require('fs');
4+
const {join} = require('path');
5+
const baseConfig = require('./config.base');
6+
7+
// Find all folders in packages/* with package.json
8+
const packagesRoot = join(__dirname, '..', '..', 'packages');
9+
const packages = readdirSync(packagesRoot).filter(dir => {
10+
if (dir.charAt(0) === '.') {
11+
return false;
12+
}
13+
if (dir.includes('react-devtools')) {
14+
return false;
15+
}
16+
const packagePath = join(packagesRoot, dir, 'package.json');
17+
return statSync(packagePath).isFile();
18+
});
19+
20+
// Create a module map to point React packages to the build output
21+
const moduleNameMapper = {};
22+
23+
// Allow bundle tests to read (but not write!) default feature flags.
24+
// This lets us determine whether we're running in different modes
25+
// without making relevant tests internal-only.
26+
moduleNameMapper[
27+
'^shared/ReactFeatureFlags'
28+
] = `<rootDir>/packages/shared/forks/ReactFeatureFlags.readonly`;
29+
30+
// Map packages to bundles
31+
packages.forEach(name => {
32+
// Root entry point
33+
moduleNameMapper[`^${name}$`] = `<rootDir>/build/node_modules/${name}`;
34+
// Named entry points
35+
moduleNameMapper[
36+
`^${name}\/([^\/]+)$`
37+
] = `<rootDir>/build/node_modules/${name}/$1`;
38+
});
39+
40+
module.exports = Object.assign({}, baseConfig, {
41+
// Redirect imports to the compiled bundles
42+
moduleNameMapper,
43+
// Don't run bundle tests on -test.internal.* files
44+
testPathIgnorePatterns: ['/node_modules/', '-test.internal.js$'],
45+
// Exclude the build output from transforms
46+
transformIgnorePatterns: ['/node_modules/', '<rootDir>/build/'],
47+
testRegex: 'packages/react-devtools-shared/src/__tests__/[^]+.test.js$',
48+
snapshotSerializers: [
49+
require.resolve(
50+
'../../packages/react-devtools-shared/src/__tests__/inspectedElementSerializer.js'
51+
),
52+
require.resolve(
53+
'../../packages/react-devtools-shared/src/__tests__/storeSerializer.js'
54+
),
55+
],
56+
setupFiles: [
57+
...baseConfig.setupFiles,
58+
require.resolve('./setupTests.build.js'),
59+
require.resolve(
60+
'../../packages/react-devtools-shared/src/__tests__/setupEnv.js'
61+
),
62+
],
63+
// TODO (Jest v24) Rename "setupFilesAfterEnv" after Jest upgrade
64+
setupTestFrameworkScriptFile: require.resolve(
65+
'../../packages/react-devtools-shared/src/__tests__/setupTests.js'
66+
),
67+
});

scripts/jest/config.source-devtools.js

Lines changed: 0 additions & 26 deletions
This file was deleted.

yarn.lock

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3632,7 +3632,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
36323632
safe-buffer "^5.0.1"
36333633
sha.js "^2.4.8"
36343634

3635-
create-react-class@^15.6.2, create-react-class@^15.6.3:
3635+
create-react-class@^15.6.0, create-react-class@^15.6.2, create-react-class@^15.6.3:
36363636
version "15.6.3"
36373637
resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
36383638
dependencies:
@@ -9731,7 +9731,7 @@ prompts@^0.1.9:
97319731
kleur "^2.0.1"
97329732
sisteransi "^0.1.1"
97339733

9734-
prop-types@^15.6.0, prop-types@^15.7.2:
9734+
prop-types@^15.5.10, prop-types@^15.6.0, prop-types@^15.7.2:
97359735
version "15.7.2"
97369736
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
97379737
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -9971,6 +9971,27 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.2.1, rc@^1.2.7, rc@^1.2.8:
99719971
minimist "^1.2.0"
99729972
strip-json-comments "~2.0.1"
99739973

9974+
"react-15@npm:react@^15":
9975+
version "15.6.2"
9976+
resolved "https://registry.yarnpkg.com/react/-/react-15.6.2.tgz#dba0434ab439cfe82f108f0f511663908179aa72"
9977+
integrity sha1-26BDSrQ5z+gvEI8PURZjkIF5qnI=
9978+
dependencies:
9979+
create-react-class "^15.6.0"
9980+
fbjs "^0.8.9"
9981+
loose-envify "^1.1.0"
9982+
object-assign "^4.1.0"
9983+
prop-types "^15.5.10"
9984+
9985+
"react-dom-15@npm:react-dom@^15":
9986+
version "15.6.2"
9987+
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.6.2.tgz#41cfadf693b757faf2708443a1d1fd5a02bef730"
9988+
integrity sha1-Qc+t9pO3V/rycIRDodH9WgK+9zA=
9989+
dependencies:
9990+
fbjs "^0.8.9"
9991+
loose-envify "^1.1.0"
9992+
object-assign "^4.1.0"
9993+
prop-types "^15.5.10"
9994+
99749995
react-lifecycles-compat@^3.0.2:
99759996
version "3.0.2"
99769997
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.2.tgz#7279047275bd727a912e25f734c0559527e84eff"

0 commit comments

Comments
 (0)