When using Enzyme and React-Intl you are likely run into the issues when testing components that use some of React-Intl's components or injected formatting functions. These helper functions (mountWithIntl
and shallowWithIntl
) aim to address some of the below errors:
Uncaught Invariant Violation: [React Intl] Could not find required ``intl`` object. <IntlProvider> needs to exist in the component ancestry.
TypeError: Cannot read property 'getInstance' of null
Error: ReactWrapper::state() can only be called on the root
Checkout this question at StackOverflow for a complete overview of the issues I ran into:
Injecting react-intl object into mounted Enzyme components for testing
Im having problems with these aproaches when testing redux connected components + intl injected components.
The test is rising this error:
Invariant Violation: Could not find "store" in either the context or props of "Connect(List)". Either wrap the root component in a , or explicitly pass "store" as a prop to "Connect(List)"
code:
const wrapper = shallowWithIntl(<List />, store);
wrapper.dive()
I want to Dive to traverse to my List component to make some assertions.