I have the following scenario:
feature 'locations index page', js: :true do scenario "can make a new location" do click_link "New Location" within("#new_location") do fill_in "location_address_1", with: "location 3" end click_button "Create Location" page.should have_content "location 3" current_path.should == location_path(Location.last) end end
This test intermittently fails with
expected to find text "location 3" in ... and if I add in a save_and_open_page it shows the form submitted (button has changed from ‘create’ to ‘creating’) but the ajax response hasn’t returned to insert the new location into the page. This test always passes with a sleep thrown in before the assertion. It sometimes passes without the sleep.
Is there a way to ensure ajax requests have finished before the assertion is run? I was under the impression capybara already did this. I’m using capybara 2.1.0