Skip to content
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 component's test for closing by timeout failed #167

Open
Smistav opened this issue Dec 26, 2022 · 1 comment
Open

The component's test for closing by timeout failed #167

Smistav opened this issue Dec 26, 2022 · 1 comment

Comments

@Smistav
Copy link

Smistav commented Dec 26, 2022

import {act, render, screen} from '@testing-library/react'
import {ReactNotifications, Store} from "react-notifications-component";

jest.useFakeTimers();
describe('notification types hide after 2 second', () => {
test('should hide info',
async () => {
render()
act(() => {
Store.addNotification({
type: 'info', message: 'notification info',
container: "bottom-right", dismiss: {
duration: 2000
}
})
})
const notificationBefore = await screen.findByText('notification info')
expect(notificationBefore).toBeInTheDocument()
act(() => {
jest.advanceTimersByTime(3000)
})
const notificationAfter = await screen.findByText('notification info')
expect(notificationAfter).not.toBeInTheDocument()
})
})
jest.clearAllTimers()

The notification is not removed from the DOM even if you try to apply the method Store.removeAllNotifications(). Maybe I'm doing something wrong?

@teodosii
Copy link
Owner

teodosii commented Feb 4, 2023

can you post a CodeSandbox example that illustrates this? I know testing async stuff with timers it's not the most straightforward thing in Jest.

I'm not sure how advanceTimersByTime work and if it's actually reliable to use those, where I work I use this

render(<Component />);

await waitFor(
  () => {
    expect(loadUserMock).toHaveBeenCalled();
  },
  { timeout: 6000 }
);

It seems you're not using waitFor.

See if that helps maybe?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants