Description
I've seen a few different reports related to this topic, so I'm going to open up this issue for discussion.
In React-Redux v6, we removed the ability to pass the store as a prop named store
directly to connected components. (See my post explaining why this change was made.)
Generally, the only meaningful use case I knew of for this capability was for unit testing, as some people passed a store directly as a prop instead of wrapping the component in a <Provider>
.
I've seen some complaints that Enzyme's shallow()
does not work well with putting a <Provider>
around a connected component, but I'm not clear on the details of what exactly breaks.
Is it that Enzyme still does not support React's createContext
correctly? That rendering shallow(<Provider store={store}><ConnectedComponent /></Provider>)
does not actually generate any output from <ConnectedComponent />
? Something else?
As a related question, what exactly does it mean to "shallow-render a connected component"? What do tests with this approach look like, particularly in terms of Enzyme API usage and assertions?
I'd appreciate some examples of tests that are having issues, explanations of what specifically is breaking (beyond just "I can't pass the store as a prop any more"), and any further details people can provide related to this issue.