testing-library / dom-testing-library

🐙 Simple and complete DOM testing utilities that encourage good testing practices.
https://testing-library.com/dom
MIT License
3.25k stars 460 forks source link

Warnings of test not wrapped in act since 9.3.2 #1275

Closed joaopedrodcf closed 8 months ago

joaopedrodcf commented 8 months ago

Relevant code or config:

    it('...' () => {
        const user = userEvent.setup();
        render(<ResetPasswordForm />);

        const newPasswordInput = screen.getByLabelText(...);

        // The test will start warning here as can be seen in the screenshot below
        await user.type(newPasswordInput, ...);

What you did:

Upgraded from 9.3.1 to 9.3.2

What happened:

The warnings started appearing all over the place

Reproduction:

Problem description:

Upgrading from "@testing-library/dom": "9.3.1", to `"@testing-library/dom": "9.3.2" will start showing warnings in almost every test. All the warnings are related with not wrapping in act.

image

Suggested solution:

I don't have suggested solution as I never checked the codebase of dom testing library, probably something changed from version 9.3.1 to 9.3.2

github-actions[bot] commented 8 months ago

Uh oh! @joaopedrodcf, the image you shared is missing helpful alt text. Check your issue body.

Alt text is an invisible description that helps screen readers describe images to blind or low-vision users. If you are using markdown to display images, add your alt text inside the brackets of the markdown image.

Learn more about alt text at Basic writing and formatting syntax: images on GitHub Docs.

MatanBobi commented 8 months ago

Hi @joaopedrodcf. The act error is from React Testing Library, is there any specific reason why you have DTL installed explicitly? We have this issue that suggests it might be related to multiple DTL versions installed: https://github.com/testing-library/react-testing-library/issues/1216

joaopedrodcf commented 8 months ago

Wow, that was really quick @MatanBobi :D

Yeah, it was getting duplicated like this! After removing it, it works again 🥇

I think I saw it in next documentation but tried to look again but can't find it anymore maybe they updated their docs 😆

Gonna close the issue

joaopedrodcf commented 8 months ago

Actually found the reason @MatanBobi why I add installed the @testing-library/dom.

In the docs of user-event they say that we need to install it: https://testing-library.com/docs/ecosystem-user-event/

image

Even yarn will say that a peer dep is not met if we don't install it

image
github-actions[bot] commented 8 months ago

Uh oh! @joaopedrodcf, the image you shared is missing helpful alt text. Check https://github.com/testing-library/dom-testing-library/issues/1275#issuecomment-1798214867.

Alt text is an invisible description that helps screen readers describe images to blind or low-vision users. If you are using markdown to display images, add your alt text inside the brackets of the markdown image.

Learn more about alt text at Basic writing and formatting syntax: images on GitHub Docs.

github-actions[bot] commented 8 months ago

Uh oh! @joaopedrodcf, the image you shared is missing helpful alt text. Check https://github.com/testing-library/dom-testing-library/issues/1275#issuecomment-1798214867.

Alt text is an invisible description that helps screen readers describe images to blind or low-vision users. If you are using markdown to display images, add your alt text inside the brackets of the markdown image.

Learn more about alt text at Basic writing and formatting syntax: images on GitHub Docs.

joaopedrodcf commented 8 months ago

Just to add more information for the issue:

image image

It can be seen in the yarn.lock the 9.0.0 was resolved to 9.3.1 and then 9.3.3 was the one I installed manually

So the solution for me was to basically relly in "resolutions" ( overrides in npm ) to force the same version and not having a warning in doing yarn because of a missing peer dependency

// package.json

{
    "devDependencies": {
        "@testing-library/dom": "9.3.3",
        "@testing-library/react": "14.0.0",
        "@testing-library/user-event": "14.5.1",
    },
    "resolutions": {
        "@testing-library/dom": "9.3.3"
    }
}
github-actions[bot] commented 8 months ago

Uh oh! @joaopedrodcf, the image you shared is missing helpful alt text. Check https://github.com/testing-library/dom-testing-library/issues/1275#issuecomment-1798344862.

Alt text is an invisible description that helps screen readers describe images to blind or low-vision users. If you are using markdown to display images, add your alt text inside the brackets of the markdown image.

Learn more about alt text at Basic writing and formatting syntax: images on GitHub Docs.

MatanBobi commented 8 months ago

We have an open PR to remove that: https://github.com/testing-library/testing-library-docs/pull/1329 This was relevant back when peerDependencies weren't downloaded in case they weren't installed already. You can safely remove @testing-library/dom from your devDependencies. I'm resolving this one as it's a duplicate of the open issue in RTL (https://github.com/testing-library/react-testing-library/issues/1216) and for the specific concern you've raised, we already have an open PR in the docs. Thanks!

joaopedrodcf commented 8 months ago

Thank you so much 🙏