diff --git a/env.js b/env.js index e76179086..f24230a84 100755 --- a/env.js +++ b/env.js @@ -38,10 +38,9 @@ const version = process.argv[2]; // 6. install all of the package's peer deps at the top level var root = process.cwd(); -var adapterName = 'enzyme-adapter-react-' + version; +var adapterName = `enzyme-adapter-react-${version}`; var adapterPackageJsonPath = path.join(root, 'packages', adapterName, 'package.json'); var testPackageJsonPath = path.join(root, 'packages', 'enzyme-test-suite', 'package.json'); -var utilsPackageJsonPath = path.join(root, 'packages', 'enzyme-adapter-utils', 'package.json'); if (!fs.statSync(adapterPackageJsonPath)) { throw new Error('Adapter not found: "' + adapterName + '"'); @@ -70,7 +69,6 @@ Promise.resolve() .then(() => Promise.all([ getJSON(adapterPackageJsonPath), getJSON(testPackageJsonPath), - getJSON(utilsPackageJsonPath), ])) .then(([adapterJson, testJson]) => { const peerDeps = adapterJson.peerDependencies; diff --git a/packages/enzyme-adapter-react-15.4/src/ReactFifteenFourAdapter.js b/packages/enzyme-adapter-react-15.4/src/ReactFifteenFourAdapter.js index 8be0a7391..def7fec94 100644 --- a/packages/enzyme-adapter-react-15.4/src/ReactFifteenFourAdapter.js +++ b/packages/enzyme-adapter-react-15.4/src/ReactFifteenFourAdapter.js @@ -256,11 +256,12 @@ class ReactFifteenFourAdapter extends EnzymeAdapter { invokeSetStateCallback(instance, callback) { // React in >= 15.4, and < 16 pass undefined to a setState callback - ifReact( + const invoke = ifReact( '^15.4', () => { callback.call(instance, undefined); }, () => { super.invokeSetStateCallback(instance, callback); }, ); + invoke(); } } diff --git a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx index acf284ae8..c287b4a72 100644 --- a/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx +++ b/packages/enzyme-test-suite/test/ShallowWrapper-spec.jsx @@ -1381,11 +1381,14 @@ describe('shallow', () => { } const wrapper = shallow(); expect(wrapper.state()).to.eql({ id: 'foo' }); - wrapper.setState({ id: 'bar' }, function callback(...args) { - expect(wrapper.state()).to.eql({ id: 'bar' }); - expect(this.state).to.eql({ id: 'bar' }); - expect(wrapper.find('div').prop('className')).to.eql('bar'); - expect(args).to.eql(CALLING_SETSTATE_CALLBACK_WITH_UNDEFINED ? [undefined] : []); + return new Promise((resolve) => { + wrapper.setState({ id: 'bar' }, function callback(...args) { + expect(wrapper.state()).to.eql({ id: 'bar' }); + expect(this.state).to.eql({ id: 'bar' }); + expect(wrapper.find('div').prop('className')).to.eql('bar'); + expect(args).to.eql(CALLING_SETSTATE_CALLBACK_WITH_UNDEFINED ? [undefined] : []); + resolve(); + }); }); });