首页 > 解决方案 > 无法通过“admin-delete-user-account”测试

问题描述

我创建了一个功能,管理员可以在其仪表板上删除用户帐户。此功能在实践中成功运行。

(我已通过管理仪表板删除了用户帐户,并已通过 rails 控制台确认。)

但是,我无法通过 rspec 测试来通过测试此功能。它总是返回用户帐户仍然存在。

网站上的表格:

<%= form_for @user, url: admin_user_path(@user), data: { confirm: 'Are you sure?' }, html: { method: :delete } do |f| %>
  <%= f.submit "Delete account", class:"danger", data: { test: "delete-user-account" } %>
<% end %>

测试:

require 'rails_helper'

RSpec.feature 'deleting users' do
  let!(:admin) { create :admin }

  scenario 'successfully deleted an external user account' do
    sign_in admin, scope: :admin

    user = create(:user)
    visit admin_user_path(user)

    find('[data-test="delete-user-account"]').click

    visit root_path
    expect(user).not_to be_present
  end
end

标签: ruby-on-railsrspecrspec-rails

解决方案


因为您需要接受警报“您确定吗?”

如果您使用 Selenium API,您可以执行以下操作:

find('[data-test="delete-user-account"]').click

page.driver.browser.switch_to.alert.accept

visit root_path
expect(user).not_to be_present

推荐阅读