ruby-on-rails - 无法通过“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
解决方案
因为您需要接受警报“您确定吗?”
如果您使用 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
推荐阅读
- python - 将 UTC 时间的 pandas 列转换为秒
- java - 从显示 OutOfMemoryError:Java 堆空间的 Pyspark 数据帧创建字典
- delphi - 用于同时使用 id 和字符串进行搜索的变量类型
- r - 我可以在 rollapply 中使用什么函数来检查窗口中每个值的条件?
- html - 如何从我的网络空间(在第三个站点上)加载 Google 网络字体?
- php - 驱动程序中发生异常:SQLSTATE [HY000] [1049] 未知数据库 'bitnami_myapp'
- r - 通过在 R 中插入行将日期范围扩大另一列
- sqlite - 从 SQLite 和 treeview 中删除过期产品
- javascript - 在 Javascript 中实现最小堆?
- blazor - 在 Blazor JSInterop 中保留大小写?