无法让 'admin-delete-user-account' 测试通过
Cannot get 'admin-delete-user-account' test to pass
我创建了一个功能,管理员可以在其仪表板上删除用户帐户。此功能在实践中成功运行。
(我已通过管理仪表板删除了用户帐户,并已通过 rails 控制台确认。)
但是,我无法通过 rspec 测试来测试此功能。总是 returns 用户帐户仍然存在。
网站上的表格:
<%= 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
因为您需要接受警报"Are you sure?"
如果您使用 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
我创建了一个功能,管理员可以在其仪表板上删除用户帐户。此功能在实践中成功运行。
(我已通过管理仪表板删除了用户帐户,并已通过 rails 控制台确认。)
但是,我无法通过 rspec 测试来测试此功能。总是 returns 用户帐户仍然存在。
网站上的表格:
<%= 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
因为您需要接受警报"Are you sure?"
如果您使用 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