Skip to content

Commit

Permalink
fix(suite): number input test
Browse files Browse the repository at this point in the history
  • Loading branch information
tomasklim committed Feb 20, 2025
1 parent 9ffc64f commit 7b2c7b4
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 13 deletions.
24 changes: 17 additions & 7 deletions packages/components/src/components/Tooltip/Tooltip.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ describe('Tooltip', () => {
);

const trigger = screen.getByText('Hover me');
await userEvent.hover(trigger);

await act(async () => {
await userEvent.hover(trigger);
});

const tooltip = screen.getByText(tooltipContent);
expect(tooltip).toBeInTheDocument();
Expand All @@ -26,11 +29,12 @@ describe('Tooltip', () => {
<button id="hover-me">Hover me</button>
</Tooltip>,
);
await act(() => {});

const trigger = screen.getByText('Hover me');

await userEvent.hover(trigger);
await act(async () => {
await userEvent.hover(trigger);
});

const tooltip = screen.getByText(tooltipContent);
expect(tooltip).toBeInTheDocument();
Expand All @@ -45,7 +49,10 @@ describe('Tooltip', () => {
);

const trigger = screen.getByText('Hover me');
await userEvent.hover(trigger);

await act(async () => {
await userEvent.hover(trigger);
});

const tooltip = screen.queryByText(tooltipContent);
expect(tooltip).not.toBeInTheDocument();
Expand All @@ -61,15 +68,18 @@ describe('Tooltip', () => {

const trigger = screen.getByText('Hover me');

await userEvent.hover(trigger);
await act(async () => {
await userEvent.hover(trigger);
});

const currentTrigger = screen.getByText('Hover me');
expect(currentTrigger.parentElement).toHaveAttribute('data-state', 'open');

await userEvent.unhover(trigger);
await act(async () => {
await userEvent.unhover(trigger);
});

const triggerBefore = screen.getByText('Hover me');

// NOTE: for some reason, the content is still in the DOM but the state is definitely closed
const parent = triggerBefore.parentElement;
expect(parent).toHaveAttribute('data-state', 'closed');
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useForm } from 'react-hook-form';
import { Provider } from 'react-redux';

import { render } from '@testing-library/react';
import { act, render } from '@testing-library/react';
import userEvent from '@testing-library/user-event';
import { Store } from 'redux';

Expand Down Expand Up @@ -59,13 +59,15 @@ const testCase = async (
displayed: string,
reported: string,
) => {
// types userInput character by character
await userEvent.type(element, userInput);

// Wrap user events in act() to ensure all updates are flushed.
await act(async () => {
await userEvent.type(element, userInput);
});
expect(element.value).toBe(displayed);
expect(onChangeMock).toHaveBeenCalledWith(reported);

await userEvent.clear(element);
await act(async () => {
await userEvent.clear(element);
});
};

describe('NumberInput component', () => {
Expand Down

0 comments on commit 7b2c7b4

Please sign in to comment.