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

Exclude react-dom/unstable_testing entry point from stable releases (#23258)

* Use consistent naming for unstable_testing entry point * Exclude the testing build from non-experimental builds except at FB * FB builds shouldn't contribute to whether we include the npm files * Exclude exports fields if we delete the files entry * Move test to no longer be internal so we can test against the build * Update the bundle artifact names since they've now changed * Gate import since it doesn't exist

Sebastian Markbåge committed Feb 8, 2022 at 23:12 UTC a3bde7974c48cfa749b18531700f895c86cbad91
11 files changed +40 -24
packages/react-dom/npm/unstable_testing.js
+2 -2
@@ -32,7 +32,7 @@ if (process.env.NODE_ENV === 'production') {
32 // DCE check should happen before ReactDOM bundle executes so that
33 // DevTools can report bad minification during injection.
34 checkDCE();
35 - module.exports = require('./cjs/react-dom-testing.production.min.js');
35 + module.exports = require('./cjs/react-dom-unstable_testing.production.min.js');
36 } else {
37 - module.exports = require('./cjs/react-dom-testing.development.js');
37 + module.exports = require('./cjs/react-dom-unstable_testing.development.js');
38 }
packages/react-dom/src/__tests__/ReactDOMTestSelectors-test.js renamed
+16 -14
@@ -31,21 +31,23 @@ describe('ReactDOMTestSelectors', () => {
31 jest.resetModules();
32
33 React = require('react');
34 -
35 - const ReactDOM = require('react-dom/testing');
34 act = React.unstable_act;
37 - createComponentSelector = ReactDOM.createComponentSelector;
38 - createHasPseudoClassSelector = ReactDOM.createHasPseudoClassSelector;
39 - createRoleSelector = ReactDOM.createRoleSelector;
40 - createTextSelector = ReactDOM.createTextSelector;
41 - createTestNameSelector = ReactDOM.createTestNameSelector;
42 - findAllNodes = ReactDOM.findAllNodes;
43 - findBoundingRects = ReactDOM.findBoundingRects;
44 - focusWithin = ReactDOM.focusWithin;
45 - getFindAllNodesFailureDescription =
46 - ReactDOM.getFindAllNodesFailureDescription;
47 - observeVisibleRects = ReactDOM.observeVisibleRects;
48 - render = ReactDOM.render;
35 +
36 + if (__EXPERIMENTAL__ || global.__WWW__) {
37 + const ReactDOM = require('react-dom/unstable_testing');
38 + createComponentSelector = ReactDOM.createComponentSelector;
39 + createHasPseudoClassSelector = ReactDOM.createHasPseudoClassSelector;
40 + createRoleSelector = ReactDOM.createRoleSelector;
41 + createTextSelector = ReactDOM.createTextSelector;
42 + createTestNameSelector = ReactDOM.createTestNameSelector;
43 + findAllNodes = ReactDOM.findAllNodes;
44 + findBoundingRects = ReactDOM.findBoundingRects;
45 + focusWithin = ReactDOM.focusWithin;
46 + getFindAllNodesFailureDescription =
47 + ReactDOM.getFindAllNodesFailureDescription;
48 + observeVisibleRects = ReactDOM.observeVisibleRects;
49 + render = ReactDOM.render;
50 + }
51
52 container = document.createElement('div');
53 document.body.appendChild(container);
packages/react-dom/unstable_testing.classic.fb.js renamed
packages/react-dom/unstable_testing.experimental.js renamed
packages/react-dom/unstable_testing.js renamed
packages/react-dom/unstable_testing.modern.fb.js renamed
packages/react-dom/unstable_testing.stable.js renamed
scripts/rollup/bundles.js
+4 -3
@@ -245,12 +245,13 @@ const bundles = [
245 externals: ['react', 'react-dom'],
246 },
247
248 - // TODO: We don't use this bundle anymore
248 /******* React DOM - www - Testing *******/
249 {
250 moduleType: RENDERER,
252 - bundleTypes: [FB_WWW_DEV, FB_WWW_PROD, NODE_DEV, NODE_PROD],
253 - entry: 'react-dom/testing',
251 + bundleTypes: __EXPERIMENTAL__
252 + ? [FB_WWW_DEV, FB_WWW_PROD, NODE_DEV, NODE_PROD]
253 + : [FB_WWW_DEV, FB_WWW_PROD],
254 + entry: 'react-dom/unstable_testing',
255 global: 'ReactDOMTesting',
256 minifyWithProdErrorCodes: true,
257 wrapWithModuleBoundaries: false,
scripts/rollup/forks.js
+1 -1
@@ -129,7 +129,7 @@ const forks = Object.freeze({
129 return 'shared/forks/ReactFeatureFlags.test-renderer.www.js';
130 }
131 return 'shared/forks/ReactFeatureFlags.test-renderer.js';
132 - case 'react-dom/testing':
132 + case 'react-dom/unstable_testing':
133 switch (bundleType) {
134 case FB_WWW_DEV:
135 case FB_WWW_PROD:
scripts/rollup/packaging.js
+14 -1
@@ -139,7 +139,11 @@ let entryPointsToHasBundle = new Map();
139 for (const bundle of Bundles.bundles) {
140 let hasBundle = entryPointsToHasBundle.get(bundle.entry);
141 if (!hasBundle) {
142 - entryPointsToHasBundle.set(bundle.entry, bundle.bundleTypes.length > 0);
142 + const hasNonFBBundleTypes = bundle.bundleTypes.some(
143 + type =>
144 + type !== FB_WWW_DEV && type !== FB_WWW_PROD && type !== FB_WWW_PROFILING
145 + );
146 + entryPointsToHasBundle.set(bundle.entry, hasNonFBBundleTypes);
147 }
148 }
149
@@ -176,6 +180,15 @@ function filterOutEntrypoints(name) {
180 i--;
181 unlinkSync(`build/node_modules/${name}/${filename}`);
182 changed = true;
183 + // Remove it from the exports field too if it exists.
184 + const exportsJSON = packageJSON.exports;
185 + if (exportsJSON) {
186 + if (filename === 'index.js') {
187 + delete exportsJSON['.'];
188 + } else {
189 + delete exportsJSON['./' + filename.replace(/\.js$/, '')];
190 + }
191 + }
192 }
193 }
194 if (changed) {
scripts/shared/inlinedHostConfigs.js
+3 -3
@@ -11,7 +11,7 @@ module.exports = [
11 shortName: 'dom',
12 entryPoints: [
13 'react-dom',
14 - 'react-dom/testing',
14 + 'react-dom/unstable_testing',
15 'react-dom/src/server/ReactDOMFizzServerNode',
16 'react-server-dom-webpack/writer.node.server',
17 'react-server-dom-webpack',
@@ -33,14 +33,14 @@ module.exports = [
33 shortName: 'dom-browser',
34 entryPoints: [
35 'react-dom',
36 - 'react-dom/testing',
36 + 'react-dom/unstable_testing',
37 'react-dom/src/server/ReactDOMFizzServerBrowser',
38 'react-server-dom-webpack/writer.browser.server',
39 'react-server-dom-webpack',
40 ],
41 paths: [
42 'react-dom',
43 - 'react-dom/testing',
43 + 'react-dom/unstable_testing',
44 'react-dom/src/server/ReactDOMFizzServerBrowser.js', // react-dom/server.browser
45 'react-server-dom-webpack',
46 'react-server-dom-webpack/writer.browser.server',