Я столкнулся со следующим: мне нужно написать тест, который проверяет, не выполняется ли onChange
при нажатии того же значения.
Вот onChange:
const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
if (sameValueClicked) return;
setValue(event.target.value)
};
И вот тест, который у меня есть до сих пор:
it('Does not call onChange if same value selected', async () => {
render(
<ValuePicker
value={"1st"}
onChange={jest.fn()}
/>
);
fireEvent.click(screen.getByLabelText('Value Picker'));
await waitFor(() => screen.getByRole('dialog'));
fireEvent.click(screen.getByLabelText('1st'));
expect(screen.queryByRole('dialog')).toBeInTheDocument();
});
Прямо сейчас тест проходит, если открывающееся диалоговое окно остается открытым, но это не оптимальное решение.
Есть идеи?