Cypress throwing Uncaught TypeError: Неверный вызов представляется ложноположительным - PullRequest
0 голосов
/ 03 октября 2018

В проекте rails (5.1.6), когда набор тестов Cypress (3.1.0) щелкает ссылку выхода из системы, выдается ошибка «Uncaught TypeError: Illegal invocation».Далее в выводе объясняется, что «эта ошибка произошла из кода вашего приложения, а не из Cypress.»

Отслеживание журналов моего локального сервера, когда происходит щелчок, и то же самое в консоли chrome javascript, я могу найтиникаких ошибок не выбрасывается.Нажатие кнопки «Выход» при запуске приложения в режиме разработки не вызывает ошибок.В качестве дополнительной меры тестирования я могу настроить свою среду в «тестовом» режиме и взаимодействовать с кнопкой «Выйти» без инцидентов.

Я добавил этот бит в свои тесты, чтобы обойти ошибку:

Cypress.on('uncaught:exception', function (err, runnable) {
    //debugger;
    return false;
});

Сгенерированные рельсы ссылок выглядят так:

<a class="btn btn-outline-light my-2 my-sm-0" rel="nofollow" data-method="delete" href="/logout">Log out</a>

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

Я использую Devise для управления сеансом.

Итак, у меня есть два вопроса:

  1. Возможно ли, что это ошибка в Cypress?
  2. Есть ли способ отследить, какая конкретная кнопка была нажата, когда выдается оператор исключения unpress: Cypress.on, чтобы я непропустить случаи, когда необходимо выявить фактическую ошибку?

1 Ответ

0 голосов
/ 26 июля 2019

Я не уверен, что вы когда-нибудь решали эту проблему.Я нашел эту проблему и сумел найти решение.В вашем примере вы используете link_to для создания тега привязки a, но это запрос delete.Условно они предназначены для get запросов.Немного магии Rails позволяет нам сделать это.Почему у Cypress именно такая проблема, я не уверен, но если вы вернете свои post, put, delete запросы к form_for, это должно решить вашу проблему!Надеюсь, это поможет!

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