byRole
Итак, начнем с подробного разбора самого главного запроса в Testing Library:
Документация: https://testing-library.com/docs/queries/byrole
Собственно роль
Первым параметром метод принимает собственно роль нужного элемента в виде строки. Это может быть
Речь идет не об атрибуте
Опции
Вторым параметром можно передать объект с кучей дополнительных опций, которые помогут найти нужный элемент. Например, если у вас на странице куча кнопок, а нужно найти конкретную.
Тут будет много опций для поиска по
🔸hidden: boolean
По умолчанию значение равно false - из-за этого в поиск не включаются "недоступные" элементы (display: none, aria-hidden, role=none).
🔸name: TextMatch
Для элемента формы - это текст лейбла, для кнопки - собственно текст кнопки. Также может использоваться значение атрибута
Что за тип такой
Функция принимает два аргумента: content: string (собственно текстовый контент, по которому производится поиск) и element (DOMElement) и должна вернуть true или false.
🔸description: TextMatch
Это для атрибута aria-describedby.
🔸selected: boolean
Отбор по значению атрибута aria-selected.
🔸busy: boolean
Отбор по значению атрибута aria-busy.
🔸checked: boolean
Отбор по значению атрибута aria-checked.
🔸pressed: boolean
Отбор по значению атрибута aria-pressed.
🔸suggest: boolean
Эта настройка для того, чтобы Testing Library предлагала вам запросы получше, чем тот, что написали вы.
🔸current: boolean | string
Отбор по значению атрибута aria-current.
🔸expanded: boolean
Отбор по значению атрибута aria-expanded.
🔸queryFallbacks: boolean
По умолчанию учитывается только первая роль каждого элемента, но есть поставить тут true, то будут приняты во внимание и запасные роли, если они есть.
🔸level: number
Уровень заголовка для роли
🔸value
Это для группы атрибутов
#тестирование #testinglibrary #документация
Итак, начнем с подробного разбора самого главного запроса в Testing Library:
byRole
. Это методы getByRole
, getAllByRole
, queryByRole
, queryAllByRole
, findByRole
, findAllByRole
.Документация: https://testing-library.com/docs/queries/byrole
Собственно роль
Первым параметром метод принимает собственно роль нужного элемента в виде строки. Это может быть
button
, heading
, switch
и так далее. Речь идет не об атрибуте
role
, а прежде всего о дефолтной (встроенной) роли элементов. Например, элемент button
имеет роль button
, даже без явного указания на это. Вот тут можно почитать про роли элементов.Опции
Вторым параметром можно передать объект с кучей дополнительных опций, которые помогут найти нужный элемент. Например, если у вас на странице куча кнопок, а нужно найти конкретную.
Тут будет много опций для поиска по
aria-
атрибутам.🔸hidden: boolean
По умолчанию значение равно false - из-за этого в поиск не включаются "недоступные" элементы (display: none, aria-hidden, role=none).
🔸name: TextMatch
Для элемента формы - это текст лейбла, для кнопки - собственно текст кнопки. Также может использоваться значение атрибута
aria-label
.Что за тип такой
TextMatch
? Это составной тип, который может быть обычной строкой, регулярным выражением или даже функцией.Функция принимает два аргумента: content: string (собственно текстовый контент, по которому производится поиск) и element (DOMElement) и должна вернуть true или false.
screen.getByText((content, element) => content.startsWith('Hello'))
🔸description: TextMatch
Это для атрибута aria-describedby.
🔸selected: boolean
Отбор по значению атрибута aria-selected.
🔸busy: boolean
Отбор по значению атрибута aria-busy.
🔸checked: boolean
Отбор по значению атрибута aria-checked.
🔸pressed: boolean
Отбор по значению атрибута aria-pressed.
🔸suggest: boolean
Эта настройка для того, чтобы Testing Library предлагала вам запросы получше, чем тот, что написали вы.
🔸current: boolean | string
Отбор по значению атрибута aria-current.
🔸expanded: boolean
Отбор по значению атрибута aria-expanded.
🔸queryFallbacks: boolean
По умолчанию учитывается только первая роль каждого элемента, но есть поставить тут true, то будут приняты во внимание и запасные роли, если они есть.
🔸level: number
Уровень заголовка для роли
heading
. Учитывает как семантику тега, так и атрибут aria-level
.🔸value
Это для группы атрибутов
aria-value
, например, aria-valuemin
, aria-valuetext
. Указывается в виде объекта:
screen.getByRole('spinbutton', { value: { min: 5, max: 10 }})
#тестирование #testinglibrary #документация
Testing-Library
ByRole | Testing Library
getByRole, queryByRole, getAllByRole, queryAllByRole, findByRole,
👍2