-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Closed
Labels
Description
Describe the bug
Not sure why, but the 3.4.3 release broke my tests. I receive Error: ShallowWrapper::setState() can only be called on the root errors all over the place. Seems to be related to #1756.
The relevant test is attached. I was able to figure out that componentDidMount is called twice with the 3.4.3 release, which was not the case before.
To Reproduce
it('<MyComponent />', async () => {
fetch.mockResponse(JSON.stringify(jsonData));
const wrapper = shallow(<MyComponent />, { disableLifecycleMethods: true });
await wrapper.instance().componentDidMount();
wrapper.update();
expect(fetch.mock.calls.length).toEqual(1);
expect(wrapper.find(Table).length).toEqual(1);
});The second call to componentDidMount has the following stack trace:
console.error console.js:253
at MyComponent.componentDidMount (/src/components/MyComponent.jsx:42:13)
at /node_modules/enzyme/build/ShallowWrapper.js:204:20
at Object.batchedUpdates (/node_modules/enzyme-adapter-react-16/build/ReactSixteenAdapter.js:342:22)
at new ShallowWrapper (/node_modules/enzyme/build/ShallowWrapper.js:203:24)
at ShallowWrapper.wrap (/node_modules/enzyme/build/ShallowWrapper.js:1763:16)
at ShallowWrapper.find (/node_modules/enzyme/build/ShallowWrapper.js:815:21)
at ShallowWrapper.exists (/node_modules/enzyme/build/ShallowWrapper.js:1711:52)
at Object._callee$ (/src/components/tests/MyComponent.spec.jsx:38:20)
at tryCatch (/node_modules/regenerator-runtime/runtime.js:62:40)
at Generator.invoke [as _invoke] (/node_modules/regenerator-runtime/runtime.js:296:22)
hillalex and xitter