Cypress разрешает элементы и утверждает, что "не существует" с помощью пользовательских команд? - PullRequest
0 голосов
/ 06 августа 2020

Я изо всех сил пытаюсь понять, почему следующий (упрощенная версия) фрагмент кода не работает. Если я это сделаю:

cy.get('#doesntexist').should(elem => {expect(elem).not.to.exist})

Это нормально работает. Но если у меня есть специальная команда:

Cypress.Commands.add("checknotthere", { prevSubject: false }, (subject) => {
subject.should(elem => {expect(elem).not.to.exist})
})
// and call that with:
cy.checknotthere(cy.get('#doesntexist')

Это не срабатывает с «Невозможно установить свойство 'err' of undefined»

Точно так же не работает следующее:

Cypress.Commands.add("checknotthere", { prevSubject: false }, (subject) => {
expect(subject).not.to.exist
})
//Call the above with:
cy.get('#doesntexist').should(elem => {cy.checknotthere(elem)})

Что такого в том, чтобы поместить утверждение о несуществовании в настраиваемую команду, которая ломает вещи - независимо от того, пытаюсь ли я разрешить элемент внутри или за пределами кода настраиваемой команды? Любые другие утверждения (существуют, видны, содержат et c) кажутся прекрасными ...) Как я уже сказал, приведенный выше пример упрощен, даже упрощен по сравнению с моей фактической пользовательской командой - но я просто хотел проиллюстрировать проблему - пожалуйста не спрашивайте, почему я хочу, чтобы пользовательская команда просто утверждала, что элемента нет, я не хочу - это еще не все!

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