diff --git a/packages/enzyme-adapter-react-16/src/detectFiberTags.js b/packages/enzyme-adapter-react-16/src/detectFiberTags.js
index 92c3cce84..b59f79c41 100644
--- a/packages/enzyme-adapter-react-16/src/detectFiberTags.js
+++ b/packages/enzyme-adapter-react-16/src/detectFiberTags.js
@@ -44,7 +44,7 @@ module.exports = function detectFiberTags() {
const supportsContext = typeof React.createContext !== 'undefined';
const supportsForwardRef = typeof React.forwardRef !== 'undefined';
const supportsMemo = typeof React.memo !== 'undefined';
- const supportsProfiler = typeof React.unstable_Profiler !== 'undefined';
+ const supportsProfiler = typeof React.unstable_Profiler !== 'undefined' || typeof React.Profiler !== 'undefined';
const supportsSuspense = typeof React.Suspense !== 'undefined';
const supportsLazy = typeof React.lazy !== 'undefined';
@@ -99,7 +99,7 @@ module.exports = function detectFiberTags() {
? getFiber(React.createElement(FwdRef)).tag
: -1,
Profiler: supportsProfiler
- ? getFiber(React.createElement(React.unstable_Profiler, { id: 'mock', onRender() {} })).tag
+ ? getFiber(React.createElement((React.Profiler || React.unstable_Profiler), { id: 'mock', onRender() {} })).tag
: -1,
Suspense: supportsSuspense
? getFiber(React.createElement(React.Suspense, { fallback: false })).tag
diff --git a/packages/enzyme-test-suite/test/Adapter-spec.jsx b/packages/enzyme-test-suite/test/Adapter-spec.jsx
index 77f066386..a94284d1f 100644
--- a/packages/enzyme-test-suite/test/Adapter-spec.jsx
+++ b/packages/enzyme-test-suite/test/Adapter-spec.jsx
@@ -1048,7 +1048,7 @@ describe('Adapter', () => {
expect(getDisplayName()).to.equal('Profiler');
});
- itIf(is('>= 16.6'), 'supports ConcurrentMode', () => {
+ itIf((is('>= 16.6') && is('<16.9')), 'supports ConcurrentMode', () => {
expect(getDisplayName()).to.equal('ConcurrentMode');
});
diff --git a/packages/enzyme-test-suite/test/_helpers/react-compat.js b/packages/enzyme-test-suite/test/_helpers/react-compat.js
index a5d06b2f9..f265092fd 100644
--- a/packages/enzyme-test-suite/test/_helpers/react-compat.js
+++ b/packages/enzyme-test-suite/test/_helpers/react-compat.js
@@ -18,6 +18,7 @@ let Fragment;
let StrictMode;
let AsyncMode;
let ConcurrentMode;
+let createRoot;
let Profiler;
let PureComponent;
let Suspense;
@@ -83,7 +84,9 @@ if (is('^16.3.0-0')) {
AsyncMode = null;
}
-if (is('^16.4.0-0')) {
+if (is('^16.9.0-0')) {
+ ({ Profiler } = require('react'));
+} else if (is('^16.4.0-0')) {
({
unstable_Profiler: Profiler,
} = require('react'));
@@ -93,18 +96,32 @@ if (is('^16.4.0-0')) {
if (is('^16.6.0-0')) {
({
- unstable_ConcurrentMode: ConcurrentMode,
Suspense,
lazy,
memo,
} = require('react'));
} else {
- ConcurrentMode = null;
Suspense = null;
lazy = null;
memo = null;
}
+if (is('^16.6.0-0') && !is('^16.9.0-0')) {
+ ({
+ unstable_ConcurrentMode: ConcurrentMode,
+ } = require('react'));
+} else {
+ ConcurrentMode = null;
+}
+
+if (is('^16.9.0-0')) {
+ ({
+ unstable_createRoot: createRoot,
+ } = require('react'));
+} else {
+ createRoot = null;
+}
+
if (is('^16.8.0-0')) {
({
useCallback,
@@ -145,6 +162,7 @@ export {
createPortal,
createContext,
createRef,
+ createRoot,
forwardRef,
Fragment,
StrictMode,