У меня есть несколько тестов для запуска и проверки оповещения JS, например:
it 'triggers a modal' do
accept_alert('Hello world') do
visit '/'
click_button 'Button'
end
end
, при котором происходит сбой:
Capybara::ModalNotFound:
Unable to find modal dialog with Hello world
При работе без головы я думал, что диалоговое окноне был запущен вообще, и это была проблема с моим кодом JS, но я заметил список тестов:
* Listening on tcp://127.0.0.1:3001
Modal window has been opened, but you didn't wrap your code into (`accept_prompt` | `dismiss_prompt` | `accept_confirm` | `dismiss_confirm` | `accept_alert`), accepting by default
F
Запуск в полном Chrome Я заметил, что модал запускается и с ожидаемым сообщением.Так что теперь я не уверен:
- , почему мой
accept_alert
не проваливает тест, если сообщение действительно неверно (например, включены скрытые символы и сообщение на самом деле Hello world\t
).или что-то в этом роде) - как разворачивается модал, так как мой блок accept оборачивает все тело теста?
У меня может быть глупая синтаксическая ошибка, но я думаю, что вышеприведенное верно и верноработает над другим тестом.Чтобы попытаться докопаться до сути, я хотел отключить «принятие по умолчанию» для Capybara.
Есть ли способ:
- Сделать любой неожиданный модал неудачным для теста (вместо принятия / отклонения)?
- Выйти из текста модалов по мере их появления?