-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
The current testing environment is not configured to support act(...) with React 18 & Jest #1057
Comments
Could you provide a cloneable repro so that we can take a look. Without knowing the dependency tree, source, tests etc it's hard to judge what the issue is. |
@eps1lon I didn't have any luck making a seperate repo to reproduce. But I did discover some additional weirdness and "solve" it I think? The warning about act, ONLY showed up for me when I ran this 1 particular test, and only when I ran that test only. (If I ran all tests, the test would fail but it would not show the warnings related to "act". In RTL v12, I had to implement a hacky workaround to make my test pass like this:
I could never figure out why RTL failed my test without this in v12. But I tried removing the act wrapper around my assertion in RTL 13, and suddenly not only did my test pass as I expected it to do in V12, but the warning about missing I have no clue why removing what should be a useless It seems like there's definitely some weirdness and possibly an obscure bug somewhere? But sadly I haven't managed to reproduce it (although I only tried building the simplest case with the same jest config) |
It's probably due to fewer or more microtasks being queued. And this way some update sometimes run within the proper context and sometimes outside of it. Instead of starting from scratch, use the full repo that's reproducing and start removing code until it no longer reproduces. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
@MarkLyck Did you have any luck reproducing this with Jest? |
In my case it was caused by an extra act(() => {
fireEvent.change(root.getByLabelText('Name'), {
target: { value: 'George' },
});
}); Fixed by removing fireEvent.change(root.getByLabelText('Name'), {
target: { value: 'George' },
}); FYI @MarkLyck |
Closing since no reproduction has been provided for over a month. Note that calling |
I'm trying to upgrade my project to React 18, everything works in dev and production mode in the browser. But after upgrading to the latest version of
@testing-library/react
some of my unit tests are failing and a lot of them are logging the following warning:First thing I did was check my versions, cleared node modules and lock file just in case:
react
18.0.0react-dom
18.0.0@testing-library/react
version: "13.1.1",But everything looks right?
I checked the migration docs for React 18: https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html
Which says the latest version of
@testing-library/react
shouldn't require theglobalThis.IS_REACT_ACT_ENVIRONMENT = true
setting.But I tried setting that manually anyway before my tests run. But that didn't fix it either, (I tried several versions)
None of those fixes the Warning or the unit tests.
I'm using jest v. 27.x with jsdom which I imagine would be the most common configuration? So I'm quite surprised to be running into this error?
Here is my jest.config
Any ideas why a relatively simple setup like this, would be running into this warning with RTL v. 13.1.1?
It is my understanding that with React 18.x and RTL 13.x that this warning should be handled within RTL?
The text was updated successfully, but these errors were encountered: