To fix tests can’t fail within setImmediate or process.nextTick callback with React and Jest, we can use await when we mount our component for testing.
For instance, we write
it("should render proper number of messages based on itemsPerPortion", async () => {
const component = await shallow(
<PublishedMessages
itemsPerPortion={2}
messagesStore={mockMessagesStore()}
/>
);
component.update(); // still needed
expect(component.find(".item").length).toBe(2);
});
to mount the component PublishedMessages component with shallow.
We use await to wait for the next tick.
And then we call component.update to update the component and call expect to check our result.