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
Changing the locale to german, 'de', in the instantiation of IntlProvider doesn't "load" the translation.
I'm passing a set of german messages with translations, but the IntlProvider just work properly if we pass the locale as 'en'.
Do you know how to handle this? (I'm trying different approachs here, but none of them worked)