Are you sure? を削除する
はじめに
10月からRunteqの課題取組中
駆け出しエンジニアです.
日々の学びをアウトプットします.
概要
- 削除できない?
- 原因
- 解決策
削除できない?
下のコードを実行したところ、削除ができていなかった.
it 'Taskが削除されること' do visit project_tasks_path(task.project) click_link 'Destroy' expect(page).not_to have_selector '#task_list', text: task.title expect(Task.count).to eq 0 expect(current_path).to eq project_tasks_path(task.project) end
ブラウザを確認しても削除できていない
原因
- エラーメッセージ
Selenium::WebDriver::Error::UnexpectedAlertOpenError: unexpected alert open: {Alert text : Are you sure?}
エラーメッセージからDestroyリンクをクリックすると、アラートが出てきたといっている.
リンクのコードからも読み取れるように、削除する前に確認のダイアログが実装されている.
<%= link_to 'Destroy', [@project, task], method: :delete, data: { confirm: 'Are you sure?' } %>
つまりアラートに対応するコードを記述すれば解決しそうだ.
解決策
# 確認タイアログを実行するコード accept_confirm do click_link 'Destroy' end
- 参考サイト