I get an error because an alert is open. And I think I handle it in the right way ;-) According to my research the 'accept_confirm' block is the way to handle this.
feature "Users can delete studynotes", js: true do
let(:user) { create(:user) }
let(:otheruser) { create(:user) }
before { create(:studynote, title: "Jona", author: user) }
scenario "successfully", js:true do
login_as(user)
visit studynotes_path
click_link "Jona"
accept_confirm do
click_link t(:delete_item, item: Studynote.model_name.human)
end
expect(page).to have_content(t("activerecord.messages.deleted", model: "bijbelstudie"))
expect(page).to have_current_path pericopes_path
expect(page).to have_no_content "Jona"
end
This is the error I get
Users can delete studynotes successfully Failure/Error: expect(page).to have_content(t("activerecord.messages.deleted", model: "bijbelstudie"))
Selenium::WebDriver::Error::UnexpectedAlertOpenError: unexpected alert open: {Alert text : Weet u zeker dat u deze bijbelstudie wilt verwijderen?} (Session info: headless chrome=119.0.6045.159)
# 0 chromedriver 0x0000000104a2dd28 chromedriver + 4795688 # 1 chromedriver 0x0000000104a252b3 chromedriver + 4760243 # 2 chromedriver 0x00000001045fe88d chromedriver + 407693 # 3 chromedriver 0x000000010460c2c6 chromedriver + 463558 # 4 chromedriver 0x000000010461208b chromedriver + 487563 # 5 chromedriver 0x00000001045e3920 chromedriver + 297248 # 6 chromedriver 0x000000010460bd32 chromedriver + 462130 # 7 chromedriver 0x0000000104690a51 chromedriver + 1006161 # 8 chromedriver 0x0000000104674a73 chromedriver + 891507 # 9 chromedriver 0x000000010463f143 chromedriver + 672067 # 10 chromedriver 0x000000010464031e chromedriver + 676638 # 11 chromedriver 0x00000001049ee795 chromedriver + 4536213 # 12 chromedriver 0x00000001049f3853 chromedriver + 4556883 # 13 chromedriver 0x00000001049d4001 chromedriver + 4427777 # 14 chromedriver 0x00000001049f459d chromedriver + 4560285 # 15 chromedriver 0x00000001049c548c chromedriver + 4367500 # 16 chromedriver 0x0000000104a140e8 chromedriver + 4690152 # 17 chromedriver 0x0000000104a1429e chromedriver + 4690590 # 18 chromedriver 0x0000000104a24eee chromedriver + 4759278 # 19 libsystem_pthread.dylib 0x00007ff8036f5202 _pthread_start + 99 # 20 libsystem_pthread.dylib 0x00007ff8036f0bab thread_start + 15 #
./spec/features/study_notes/deleting_studynotes_spec.rb:19:in `block (2 levels) in <top (required)>'
Finished in 8.38 seconds (files took 5.32 seconds to load) 2 examples, 1 failure
If someone runs into the same problem, here's how I fixed this. I noticed in the page source that all my javascript files were loaded twice. After removing these 2 lines from my application.html.haml, that problem was solved.