You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Часто, для e2e тестирования требуется получить доступ к компоненту, или его части для взаимодействия.
Построение запросов через контент или accessibility (лэйблы, роли) не всегда возможно, когда речь идёт об интерфейсе с локализацией.
Самый лучший запасной варинат это data-* аттрибуты, а частности data-testid.
Следует пройтись по всем компонентам и их подкомпонентам и добавить возможность передачи data-testid.
По умолчанию мы позволяем передавать data-testid в компонент как есть, но это работает только с простыми блоками.
Труднее всего с интерактивными элементами компонентов собранных из подкомпонентов, типа Alert. Где есть кнопка закрытия, но доступ к ней получить не легко.
Варианты решения.
подкомпонентный подход [Epic]: Подкомпонентный подход #4699
но не все компоненты можно так разложить + требует много времени для реализации. Также этот подход может быть болезненным, когда требуется лишь передать testId, хочется избежать переписывания компонента.
добавление новый свойств, например closeButtonTestId. Более дешёвый способ, позволяющий уже сейчас получить желаемый результат. В части компонентов уже применён.
slots и концепия перезаписи пропсов. Потребует сильной переработки компонентов. Надеюсь, что мы к этому придём, но не в скором времени.
Описание
Часто, для e2e тестирования требуется получить доступ к компоненту, или его части для взаимодействия.
Построение запросов через контент или accessibility (лэйблы, роли) не всегда возможно, когда речь идёт об интерфейсе с локализацией.
Самый лучший запасной варинат это data-* аттрибуты, а частности data-testid.
Следует пройтись по всем компонентам и их подкомпонентам и добавить возможность передачи data-testid.
По умолчанию мы позволяем передавать data-testid в компонент как есть, но это работает только с простыми блоками.
Труднее всего с интерактивными элементами компонентов собранных из подкомпонентов, типа Alert. Где есть кнопка закрытия, но доступ к ней получить не легко.
Варианты решения.
подкомпонентный подход [Epic]: Подкомпонентный подход #4699
но не все компоненты можно так разложить + требует много времени для реализации. Также этот подход может быть болезненным, когда требуется лишь передать testId, хочется избежать переписывания компонента.
добавление новый свойств, например
closeButtonTestId
. Более дешёвый способ, позволяющий уже сейчас получить желаемый результат. В части компонентов уже применён.slots
и концепия перезаписи пропсов. Потребует сильной переработки компонентов. Надеюсь, что мы к этому придём, но не в скором времени.Related
The text was updated successfully, but these errors were encountered: