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,