How to fix tests can’t fail within setImmediate or process.nextTick callback with React and Jest?

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.