From edeb99c21cbcbc86e70a4d627192dc975d955544 Mon Sep 17 00:00:00 2001 From: Nuno Campos Date: Mon, 10 Apr 2017 09:00:37 +0200 Subject: [PATCH] Remove dependency on create-react-class - remove createClass export from src/react-compat - add test/react-compat with createClass export - change spec files to import createClass from test/react-compat - undo changes to src/ReactWrapperComponent.jsx (use of createClass there removed in #877 - update README with correct dependencies for react@15.5 --- README.md | 2 +- src/ReactWrapperComponent.jsx | 4 +--- src/react-compat.js | 9 --------- test/ReactWrapper-spec.jsx | 3 ++- test/ShallowWrapper-spec.jsx | 2 +- test/react-compat.js | 14 ++++++++++++++ test/staticRender-spec.jsx | 2 +- 7 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 test/react-compat.js diff --git a/README.md b/README.md index c333aee36..135392a77 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ If you are using `React >=15.5`, in addition to `enzyme`, you will have to ensur the following npm modules installed if they were not already: ```bash -npm i --save-dev react-dom create-react-class +npm i --save-dev react-test-renderer react-dom ``` diff --git a/src/ReactWrapperComponent.jsx b/src/ReactWrapperComponent.jsx index 4cbeb00b9..4bba0d081 100644 --- a/src/ReactWrapperComponent.jsx +++ b/src/ReactWrapperComponent.jsx @@ -1,7 +1,5 @@ -import React from 'react'; -import PropTypes from 'prop-types'; +import React, { PropTypes } from 'react'; import objectAssign from 'object.assign'; -import { createClass } from './react-compat'; /* eslint react/forbid-prop-types: 0 */ diff --git a/src/react-compat.js b/src/react-compat.js index 6ca2e7c57..88820512c 100644 --- a/src/react-compat.js +++ b/src/react-compat.js @@ -18,7 +18,6 @@ let childrenToArray; let renderWithOptions; let unmountComponentAtNode; let batchedUpdates; -let createClass; let shallowRendererFactory; const React = require('react'); @@ -177,13 +176,6 @@ if (REACT013) { }; } -if (REACT155) { - // eslint-disable-next-line import/no-extraneous-dependencies - createClass = require('create-react-class'); -} else { - createClass = React.createClass; -} - function isDOMComponentElement(inst) { return React.isValidElement(inst) && typeof inst.type === 'string'; } @@ -219,5 +211,4 @@ export { renderWithOptions, unmountComponentAtNode, batchedUpdates, - createClass, }; diff --git a/test/ReactWrapper-spec.jsx b/test/ReactWrapper-spec.jsx index 53bdecb4d..9af9b89ed 100644 --- a/test/ReactWrapper-spec.jsx +++ b/test/ReactWrapper-spec.jsx @@ -4,7 +4,8 @@ import React from 'react'; import PropTypes from 'prop-types'; import { expect } from 'chai'; import sinon from 'sinon'; -import { batchedUpdates, createClass } from '../src/react-compat'; +import { batchedUpdates } from '../src/react-compat'; +import { createClass } from './react-compat' import { describeWithDOM, diff --git a/test/ShallowWrapper-spec.jsx b/test/ShallowWrapper-spec.jsx index f474ad1c2..4736bb483 100644 --- a/test/ShallowWrapper-spec.jsx +++ b/test/ShallowWrapper-spec.jsx @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import { expect } from 'chai'; import sinon from 'sinon'; -import { createClass } from '../src/react-compat'; +import { createClass } from './react-compat'; import { shallow, render, ShallowWrapper } from '../src/'; import { describeIf, itIf, itWithData, generateEmptyRenderData } from './_helpers'; import { ITERATOR_SYMBOL, withSetStateAllowed } from '../src/Utils'; diff --git a/test/react-compat.js b/test/react-compat.js new file mode 100644 index 000000000..7ae2fde21 --- /dev/null +++ b/test/react-compat.js @@ -0,0 +1,14 @@ +import { REACT155 } from './version'; + +let createClass; + +if (REACT155) { + // eslint-disable-next-line import/no-extraneous-dependencies + createClass = require('create-react-class'); +} else { + createClass = require('react').createClass; +} + +export { + createClass, +}; diff --git a/test/staticRender-spec.jsx b/test/staticRender-spec.jsx index 4ebe74c4f..05b895f2e 100644 --- a/test/staticRender-spec.jsx +++ b/test/staticRender-spec.jsx @@ -4,7 +4,7 @@ import { expect } from 'chai'; import { describeWithDOM, describeIf } from './_helpers'; import { render } from '../src/'; import { REACT013 } from '../src/version'; -import { createClass } from '../src/react-compat'; +import { createClass } from './react-compat' describeWithDOM('render', () => { describeIf(!REACT013, 'context', () => {