react-testing-library icon indicating copy to clipboard operation
react-testing-library copied to clipboard

post-upgrade, unexpected `act` warning with `findBy` queries (includes repro)

Open trv-wcaneira opened this issue 3 years ago • 0 comments

Relevant code or config:

  render(<App />);
  
  //generates an unexpected act warning after upgrading
  await screen.findByText('Loading...')

  const text = await screen.findByText('testing123');
  expect(text).toBeInTheDocument();

What you did:

Upgraded existing application to react 18+ and RTL 13+.

What happened:

A number of tests starting producing act warnings after the upgrade.

In this case, the component being rendered has initial "loading" state before a fetch is completed and the state is changed. Our existing tests awaited the "loading" text. This now produces an act warning.

Reproduction:

I was able to reproduce the issue with a simple CRA repo, here: https://github.com/trv-wcaneira/act-warning-mcve

Problem description:

The act warning is certainly a distraction over hundreds of tests, but concerning because I know it is there for a reason, and I'd like to understand what is wrong.

Suggested solution:

I can replace the await findBy* queries in our tests for this use case, but I'd like to better understand why this is happening (please). I am especially curious because after upgrading, I have noticed a number of behavior changes in existing tests (that I'll file separate issues for).

trv-wcaneira avatar Sep 16 '22 14:09 trv-wcaneira