Народ, помогите рассудить. Используем testing library в cypress. Модно, стильно, молодежно, селекторы уникальные, вроде ляпота, но… Старшие товарищи настояли на использовании встроенных методов типа findByTestId(), а я был за встроенные по атрибуту типа cy.get('[data-testid…]’). И теперь что я вижу? findByTestId не поддерживает очень многие методы, например catch(), first() и т.п. В интернетах пишут и так и сяк, но я уже начинаю агриться на findByTestId. При доступе к коду приложения, я и без testing library могу расставить data-testid какие захочу.
Вопрос, используете ли вы findByTestId и почему?
Если столкнулись с подобной ситуацией, подскажите грамотные аргументы, чтобы переубедить коллег. Или скажите где я не прав. У меня пока мало опыта и примеров
Не понятно, что такое catch(). Если имеется в виду Promise.catch() c js - оно и не будет работать, команды сайпреса - это не промисы. Если же брать всякие first, last, not, eq, contains, find - легко заменяются на селекторы ':first', ':last', ':contains("text")' и тд., файнд - просто склейка двух селекторов через пробел.
Эти фандбаи - дело удобства и привычек, "хочу шоб было как в селениуме!"
Мы когда-то рассматривали, но пришли к тому, что для получения элементов зависеть от какой то библиотеки - так себе идея. Плюс для дебага, селектор с cy.get можно легко копировать для проверки в консоли браузера / плейграунде сайпреса.