Search code examples
ruby-on-railsruby-on-rails-3devisecapybararspec-rails

Capybara & Rspec: How to delete an account?


I'm using Devise and writing a test for the scenario of a user deleting their own account but I'm stuck on how I would call up the confirm box and click OK.

Here is the link and my test:

<p><%= link_to "Delete my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %></p>

spec/requests/users_spec.rb

scenario 'user deletes account' do
   make_user_and_login
   click_link('Account Settings')
   page.should have_selector('title', :text => 'Account Settings')
   click_link('Delete my account')
   # Are You Sure?
   # click OK in confirm box
   # page.should etc.....
end

How would this be done?


Solution

  • Make sure capybara is using a driver which supports javascript. Then try this:

    page.driver.browser.switch_to.alert.accept
    

    Alternately, to cancel:

    page.driver.browser.switch_to.alert.dismiss