@samitouri / QOS-React-2 / commits / a48593a8d3

Iterating on DevTools tests: Trying to run tests against pre-build react-dom and react-test-renderers

Brian Vaughn committed Aug 26, 2019 at 13:43 UTC a48593a8d36f5e1c26d0d98b6ceae77642aed5cb
6 files changed +105 -40
.circleci/config.yml
+10 -10
@@ -84,16 +84,6 @@ jobs:
84 - *run_yarn
85 - run: yarn test-persistent --maxWorkers=2
86
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 -
87 test_source_prod:
88 docker: *docker
89 environment: *environment
@@ -168,6 +158,16 @@ jobs:
158 - *run_yarn
159 - run: yarn test-build --maxWorkers=2
160
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 +
171 test_dom_fixtures:
172 docker: *docker
173 environment: *environment
package.json
+1 -2
@@ -102,14 +102,13 @@
102 "postinstall": "node node_modules/fbjs-scripts/node/check-dev-engines.js package.json && node ./scripts/flow/createFlowConfigs.js",
103 "debug-test": "cross-env NODE_ENV=development node --inspect-brk node_modules/.bin/jest --config ./scripts/jest/config.source.js --runInBand",
104 "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",
105 "test-persistent": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.source-persistent.js",
106 "debug-test-persistent": "cross-env NODE_ENV=development node --inspect-brk node_modules/.bin/jest --config ./scripts/jest/config.source-persistent.js --runInBand",
107 "test-prod": "cross-env NODE_ENV=production jest --config ./scripts/jest/config.source.js",
108 "test-prod-build": "yarn test-build-prod",
109 "test-build": "cross-env NODE_ENV=development jest --config ./scripts/jest/config.build.js",
110 "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",
112 "test-dom-fixture": "cd fixtures/dom && yarn && yarn prestart && yarn test",
113 "flow": "node ./scripts/tasks/flow.js",
114 "flow-ci": "node ./scripts/tasks/flow-ci.js",
packages/react-devtools-shared/package.json
+4
@@ -2,6 +2,10 @@
2 "private": true,
3 "name": "react-devtools-shared",
4 "version": "0.0.0",
5 + "devDependencies": {
6 + "react-15": "npm:react@^15",
7 + "react-dom-15": "npm:react-dom@^15"
8 + },
9 "dependencies": {
10 "@babel/runtime": "^7.0.0",
11 "@reach/menu-button": "^0.1.17",
scripts/jest/config.build-devtools.js new
+67
@@ -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 deleted
-26
@@ -1,26 +0,0 @@
1 -'use strict';
2 -
3 -const baseConfig = require('./config.base');
4 -
5 -module.exports = Object.assign({}, baseConfig, {
6 - testRegex: 'packages/react-devtools-shared/src/__tests__/[^]+.test.js$',
7 - snapshotSerializers: [
8 - require.resolve(
9 - '../../packages/react-devtools-shared/src/__tests__/inspectedElementSerializer.js'
10 - ),
11 - require.resolve(
12 - '../../packages/react-devtools-shared/src/__tests__/storeSerializer.js'
13 - ),
14 - ],
15 - setupFiles: [
16 - ...baseConfig.setupFiles,
17 - require.resolve('./setupHostConfigs.js'),
18 - require.resolve(
19 - '../../packages/react-devtools-shared/src/__tests__/setupEnv.js'
20 - ),
21 - ],
22 - // TODO (Jest v24) Rename "setupFilesAfterEnv" after Jest upgrade
23 - setupTestFrameworkScriptFile: require.resolve(
24 - '../../packages/react-devtools-shared/src/__tests__/setupTests.js'
25 - ),
26 -});
yarn.lock
+23 -2
@@ -3632,7 +3632,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
3632 safe-buffer "^5.0.1"
3633 sha.js "^2.4.8"
3634
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:
3636 version "15.6.3"
3637 resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.3.tgz#2d73237fb3f970ae6ebe011a9e66f46dbca80036"
3638 dependencies:
@@ -9731,7 +9731,7 @@ prompts@^0.1.9:
9731 kleur "^2.0.1"
9732 sisteransi "^0.1.1"
9733
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:
9735 version "15.7.2"
9736 resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
9737 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:
9971 minimist "^1.2.0"
9972 strip-json-comments "~2.0.1"
9973
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 +
9995 react-lifecycles-compat@^3.0.2:
9996 version "3.0.2"
9997 resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.2.tgz#7279047275bd727a912e25f734c0559527e84eff"