Пользовательские дочерние команды для элементов интерфейса - PullRequest
0 голосов
/ 10 июля 2019

В настоящее время мы используем Select2 для всех наших <select> элементов и по понятным причинам cy.get("#element").select("foo") не будет работать. В соответствии с документами мы создали нашу собственную команду cy.get("#element").select2("foo"), которая просто оборачивает несколько шагов, чтобы выбрать «foo».

Это хорошо работает при попытке выбрать значение, но мы бы хотели избежать добавления пользовательских команд для clear (), value () и т. Д.

Мы также хотели бы избежать использования API Select2, потому что для этого нужно, чтобы кто-то понимал этот API, а не просто работал в Cypress API.

Мы хотели бы создать что-то более гибкое, вместо этого имея дружественный Cypress объект. Нечто похожее на это:

cy.get("#element").select2().as("select2");
cy.get("@select2").select("foo");
cy.get("@select2").should("be.equal", "foo");
cy.get("@select2").clear();

Можно ли создать дочернюю команду, которая возвращает объект, который затем может переопределить эти встроенные команды?

Мы не можем вернуть наш пользовательский объект из нашей пользовательской команды без предварительного cy.wrap, который игнорирует цель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...