testing-library / dom-testing-library

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

Warnings of test not wrapped in act since 9.3.2 #1275

Closed joaopedrodcf closed 1 year ago

joaopedrodcf commented 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year 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 1 year ago

Thank you so much 🙏