VKUI icon indicating copy to clipboard operation
VKUI copied to clipboard

[Feature][EPIC]: Поддержать возможность передачи data-testid во всех компонентах, особенно в интерактивные подкомпоненты

Open mendrew opened this issue 1 year ago • 0 comments

Описание

Часто, для e2e тестирования требуется получить доступ к компоненту, или его части для взаимодействия. Построение запросов через контент или accessibility (лэйблы, роли) не всегда возможно, когда речь идёт об интерфейсе с локализацией.

Самый лучший запасной варинат это data-* аттрибуты, а частности data-testid.

Следует пройтись по всем компонентам и их подкомпонентам и добавить возможность передачи data-testid.

По умолчанию мы позволяем передавать data-testid в компонент как есть, но это работает только с простыми блоками. Труднее всего с интерактивными элементами компонентов собранных из подкомпонентов, типа Alert. Где есть кнопка закрытия, но доступ к ней получить не легко.

Варианты решения.

  • подкомпонентный подход https://github.com/VKCOM/VKUI/issues/4699 но не все компоненты можно так разложить + требует много времени для реализации. Также этот подход может быть болезненным, когда требуется лишь передать testId, хочется избежать переписывания компонента.

  • добавление новый свойств, например closeButtonTestId. Более дешёвый способ, позволяющий уже сейчас получить желаемый результат. В части компонентов уже применён.

  • slots и концепия перезаписи пропсов. Потребует сильной переработки компонентов. Надеюсь, что мы к этому придём, но не в скором времени.

Related

  • https://github.com/VKCOM/VKUI/issues/6175
  • https://github.com/VKCOM/VKUI/issues/7688

mendrew avatar Dec 06 '23 14:12 mendrew