diff --git a/.travis.yml b/.travis.yml index 2e37c14ae..8c003413a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -101,7 +101,7 @@ matrix: - node_js: "6" env: REACT=0.13 env: - - REACT=17.0 + - REACT=17.0.0-rc.0 - REACT=16.13 - REACT=16.12 - REACT=16.11 diff --git a/env.js b/env.js index c5c0ec0ec..5aae69079 100755 --- a/env.js +++ b/env.js @@ -86,6 +86,10 @@ function getAdapter(reactVersion) { return '16.1'; } } + // TODO: use Semver + if (reactVersion === '17.0.0-rc.0') { + return '17'; + } return null; } const reactVersion = version < 15 ? '0.' + version : version; diff --git a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx index 98ab82001..c91bcb260 100644 --- a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx +++ b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx @@ -39,12 +39,13 @@ import describeMethods from './_helpers/describeMethods'; import describeHooks from './_helpers/describeHooks'; import { REACT16, + REACT17, is, } from './_helpers/version'; // The shallow renderer in react 16 does not yet support batched updates. When it does, // we should be able to go un-skip all of the tests that are skipped with this flag. -const BATCHING = !REACT16; +const BATCHING = !REACT16 && !REACT17; describe('shallow', () => { describe('top level entry points', () => { diff --git a/packages/enzyme-test-suite/test/_helpers/adapter.js b/packages/enzyme-test-suite/test/_helpers/adapter.js index 3d339c6b4..b5d319fc3 100644 --- a/packages/enzyme-test-suite/test/_helpers/adapter.js +++ b/packages/enzyme-test-suite/test/_helpers/adapter.js @@ -27,6 +27,8 @@ if (process.env.ADAPTER) { Adapter = require('enzyme-adapter-react-16.3'); } else if (is('^16.4.0-0')) { Adapter = require('enzyme-adapter-react-16'); +} else if (is('^17.0.0-rc.0')) { + Adapter = require('enzyme-adapter-react-17'); } module.exports = Adapter; diff --git a/packages/enzyme-test-suite/test/_helpers/react-compat.js b/packages/enzyme-test-suite/test/_helpers/react-compat.js index 900ad4c0b..320cf4f14 100644 --- a/packages/enzyme-test-suite/test/_helpers/react-compat.js +++ b/packages/enzyme-test-suite/test/_helpers/react-compat.js @@ -36,7 +36,7 @@ let useRef; let useState; let act; -if (is('>=15.5 || ^16.0.0-alpha || ^16.3.0-alpha')) { +if (is('>=15.5 || ^16.0.0-alpha || ^16.3.0-alpha || ^17.0.0-rc.0')) { // eslint-disable-next-line import/no-extraneous-dependencies createClass = require('create-react-class'); } else { @@ -50,7 +50,7 @@ if (is('^0.13.0')) { ({ renderToString } = require('react-dom/server')); } -if (is('^16.0.0-0 || ^16.3.0-0')) { +if (is('^16.0.0-0 || ^16.3.0-0 || ^17.0.0-rc.0')) { ({ createPortal } = require('react-dom')); } else { createPortal = null; @@ -62,13 +62,13 @@ if (is('>=15.3')) { PureComponent = null; } -if (is('^16.2.0-0')) { +if (is('^16.2.0-0 || ^17.0.0-rc.0')) { ({ Fragment } = require('react')); } else { Fragment = null; } -if (is('^16.3.0-0')) { +if (is('^16.3.0-0 || ^17.0.0-rc.0')) { ({ createContext, createRef, @@ -84,7 +84,7 @@ if (is('^16.3.0-0')) { AsyncMode = null; } -if (is('^16.9.0-0')) { +if (is('^16.9.0-0 || ^17.0.0-rc.0')) { ({ Profiler } = require('react')); } else if (is('^16.4.0-0')) { ({ @@ -94,7 +94,7 @@ if (is('^16.9.0-0')) { Profiler = null; } -if (is('^16.6.0-0')) { +if (is('^16.6.0-0 || ^17.0.0-rc.0')) { ({ Suspense, lazy, @@ -122,7 +122,7 @@ if (is('^16.9.0-0')) { createRoot = null; } -if (is('^16.8.0-0')) { +if (is('^16.8.0-0 || ^17.0.0-rc.0')) { ({ useCallback, useContext, diff --git a/packages/enzyme-test-suite/test/_helpers/version.js b/packages/enzyme-test-suite/test/_helpers/version.js index 5f2f37060..bae6905ff 100644 --- a/packages/enzyme-test-suite/test/_helpers/version.js +++ b/packages/enzyme-test-suite/test/_helpers/version.js @@ -11,3 +11,4 @@ export function is(range) { } export const REACT16 = is('16'); +export const REACT17 = is('^17.0.0-rc.0'); diff --git a/packages/enzyme-test-suite/test/staticRender-spec.jsx b/packages/enzyme-test-suite/test/staticRender-spec.jsx index 6b9b8ad54..4947065bd 100644 --- a/packages/enzyme-test-suite/test/staticRender-spec.jsx +++ b/packages/enzyme-test-suite/test/staticRender-spec.jsx @@ -94,7 +94,7 @@ describeWithDOM('render', () => { }); const getWrapper = (options) => render(, options); - if (is('>= 16')) { + if (is('>= 16 || ^17.0.0-rc.0')) { expect(getWrapper).to.not.throw(); const wrapper = getWrapper(); @@ -115,7 +115,7 @@ describeWithDOM('render', () => { }); const getWrapper = (options) => render(, options); - if (is('>= 16')) { + if (is('>= 16 || ^17.0.0-rc.0')) { expect(getWrapper).to.not.throw(); const wrapper = getWrapper(); @@ -129,7 +129,7 @@ describeWithDOM('render', () => { }); }); - describeIf(is('> 16.6'), 'suspense fallback option', () => { + describeIf(is('> 16.6 || ^17.0.0-rc.0'), 'suspense fallback option', () => { it('throws if options.suspenseFallback is specified', () => { class DynamicComponent extends React.Component { render() {