#javascript #typescript #unit-testing #react-testing-library
Вопрос:
У меня есть один компонент, отображающий всплывающее окно в виде следующего HTML
кода после открытия всплывающего окна. Я хотел бы написать тест с помощью тестовой библиотеки, чтобы проверить aria-expanded
значение false
после нажатия на всплывающий элемент. есть ли для меня лучший способ проверить расширение арии?
// component
<body>
<div>
<div >
<button aria-expanded="true" class="btn">
Flyout button
</button>
<div class="flyoutContainer>
<ul class="flyoutItem" role="listbox" >
<li aria-selected="false" class="item" role="option" >
<div class="option" >
<span >Data is here</span>
</div>
</li>
</ul>
</div>
</div>
</div>
</body>
// test
render(<flyout />);
const item = screen.getByText(/Data is here/, {selector: 'span'});
fireEvent.click(item);
const flyoutButton = screen.getByRole('button', {name: 'Flyout button'});
expect(flyoutButton).toHaveClass('aria-expanded').;
expect(flyoutButton).toHaveAttribute('aria-expanded', 'false')
Комментарии:
1. Если вы динамически не добавляете пользовательский класс с именем
aria-expanded
и не хотите проверить, правильно ли он добавляется, первое утверждение (...toHaveClass
) не потребуется. Кроме этого, я не вижу проблемы. Вы получаете сообщение об ошибке?