Skip to content

Commit a3bde79

Browse files
authoredFeb 9, 2022
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
1 parent 5690932 commit a3bde79

11 files changed

+40
-24
lines changed
 

‎packages/react-dom/npm/unstable_testing.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ if (process.env.NODE_ENV === 'production') {
3232
// DCE check should happen before ReactDOM bundle executes so that
3333
// DevTools can report bad minification during injection.
3434
checkDCE();
35-
module.exports = require('./cjs/react-dom-testing.production.min.js');
35+
module.exports = require('./cjs/react-dom-unstable_testing.production.min.js');
3636
} else {
37-
module.exports = require('./cjs/react-dom-testing.development.js');
37+
module.exports = require('./cjs/react-dom-unstable_testing.development.js');
3838
}

‎packages/react-dom/src/__tests__/ReactDOMTestSelectors-test.internal.js ‎packages/react-dom/src/__tests__/ReactDOMTestSelectors-test.js

+16-14
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,23 @@ describe('ReactDOMTestSelectors', () => {
3131
jest.resetModules();
3232

3333
React = require('react');
34-
35-
const ReactDOM = require('react-dom/testing');
3634
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+
}
4951

5052
container = document.createElement('div');
5153
document.body.appendChild(container);
File renamed without changes.

‎scripts/rollup/bundles.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -245,12 +245,13 @@ const bundles = [
245245
externals: ['react', 'react-dom'],
246246
},
247247

248-
// TODO: We don't use this bundle anymore
249248
/******* React DOM - www - Testing *******/
250249
{
251250
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',
254255
global: 'ReactDOMTesting',
255256
minifyWithProdErrorCodes: true,
256257
wrapWithModuleBoundaries: false,

‎scripts/rollup/forks.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ const forks = Object.freeze({
129129
return 'shared/forks/ReactFeatureFlags.test-renderer.www.js';
130130
}
131131
return 'shared/forks/ReactFeatureFlags.test-renderer.js';
132-
case 'react-dom/testing':
132+
case 'react-dom/unstable_testing':
133133
switch (bundleType) {
134134
case FB_WWW_DEV:
135135
case FB_WWW_PROD:

‎scripts/rollup/packaging.js

+14-1
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,11 @@ let entryPointsToHasBundle = new Map();
139139
for (const bundle of Bundles.bundles) {
140140
let hasBundle = entryPointsToHasBundle.get(bundle.entry);
141141
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);
143147
}
144148
}
145149

@@ -176,6 +180,15 @@ function filterOutEntrypoints(name) {
176180
i--;
177181
unlinkSync(`build/node_modules/${name}/${filename}`);
178182
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+
}
179192
}
180193
}
181194
if (changed) {

‎scripts/shared/inlinedHostConfigs.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ module.exports = [
1111
shortName: 'dom',
1212
entryPoints: [
1313
'react-dom',
14-
'react-dom/testing',
14+
'react-dom/unstable_testing',
1515
'react-dom/src/server/ReactDOMFizzServerNode',
1616
'react-server-dom-webpack/writer.node.server',
1717
'react-server-dom-webpack',
@@ -33,14 +33,14 @@ module.exports = [
3333
shortName: 'dom-browser',
3434
entryPoints: [
3535
'react-dom',
36-
'react-dom/testing',
36+
'react-dom/unstable_testing',
3737
'react-dom/src/server/ReactDOMFizzServerBrowser',
3838
'react-server-dom-webpack/writer.browser.server',
3939
'react-server-dom-webpack',
4040
],
4141
paths: [
4242
'react-dom',
43-
'react-dom/testing',
43+
'react-dom/unstable_testing',
4444
'react-dom/src/server/ReactDOMFizzServerBrowser.js', // react-dom/server.browser
4545
'react-server-dom-webpack',
4646
'react-server-dom-webpack/writer.browser.server',

0 commit comments

Comments
 (0)