Наша команда столкнулась со сценарием сегодня днем при написании теста React Testing Library (RTL) с Jest для нашего <Avatar />
компонента. В частности, мы хотели проверить, что тег <img />
был удален из DOM, когда он не загружается (запускается onError
), чтобы соответствовать ожидаемому окончательному виду компонента. По какой-то причине использование fireEvent
в элементе <img />
DOM не было для нас сразу очевидным, и мы не нашли это явное решение в Интернете, поэтому мы хотели поделиться. Как вы можете себе представить, это будет работать и для других событий, таких как onLoad
. Подробнее о RTL Events .
it('should render with only initials when avatar image is NOT found', async() => {
const { container } = render(<Avatar {...defaultMocks} />);
const avatarImg = container.querySelector('img');
expect(avatarImg).toBeInTheDocument();
fireEvent(avatarImg, new Event('error'));
expect(avatarImg).not.toBeInTheDocument();
});