Капибара терпит неудачу на Accept_Confirm - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь настроить тест для проверки в помощнике "Link_to" в рельсах, когда он имеет => данные: {подтверждение: "Вы уверены?"}

Я пробовал Accept_confirm и Accept_Alert, но ничего из этого не помогло. Ошибки показывают: Capybara :: NotSupportedByDriverError: Capybara :: Driver :: Base # accept_modal

describe 'delete' do
     it 'y existe un enlace para borrar Post' do
      @post = FactoryBot.create(:post)
      visit posts_path
      accept_confirm("Are you sure?") do
        click_link("delete#{@post.id}")
      end
      expect(page.status_code).to eq(200)
    end
  end
<td>
  <%= link_to 'Borrar', post_path(post), method: :delete, id: "delete#{post.id}", data: {confirm: "Are you sure?" }%>
</td>

Полное сообщение об ошибке гласит: 1) Навигация удалить и отправить сообщение Сбой / Ошибка: accept_confirm («Вы уверены?») делать click_link ( "удалить # {@ post.id}") конец

 Capybara::NotSupportedByDriverError:
   Capybara::Driver::Base#accept_modal
 # ./spec/features/post_spec.rb:45:in `block (3 levels) in <top (required)>'

1 Ответ

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

Вы запускаете свои тесты, используя драйвер, который не поддерживает JS (вероятно, драйвер rack_test по умолчанию). Таким образом, модальные окна, управляемые JS, не отображаются, а методы модальной обработки не поддерживаются. Вам нужно будет запустить тесты через драйвер, который поддерживает JS, если вы хотите использовать функции JS на странице - https://github.com/teamcapybara/capybara/blob/master/README.md#drivers.

...