/
rails_admin_basic_bulk_destroy_spec.rb
53 lines (46 loc) · 2.23 KB
/
rails_admin_basic_bulk_destroy_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
require 'spec_helper'
describe 'RailsAdmin Basic Bulk Destroy' do
subject { page }
describe 'successful bulk delete of records', active_record: true do
before do
RailsAdmin::History.destroy_all
RailsAdmin.config { |c| c.audit_with :history }
@players = 3.times.collect { FactoryGirl.create(:player) }
@delete_ids = @players[0..1].collect(&:id)
# NOTE: This uses an internal, unsupported capybara API which could break at any moment. We
# should refactor this test so that it either A) uses capybara's supported API (only GET
# requests via visit) or B) just uses Rack::Test (and doesn't use capybara for browser
# interaction like click_button).
page.driver.browser.reset_host!
page.driver.browser.process :post, bulk_action_path(bulk_action: 'bulk_delete', model_name: 'player', bulk_ids: @delete_ids, '_method' => 'post')
click_button "Yes, I'm sure"
end
it 'does not contain deleted records' do
expect(RailsAdmin::AbstractModel.new('Player').count).to eq(1)
expect(RailsAdmin::History.count).to eq(@delete_ids.count)
RailsAdmin::History.all.each do |history|
expect(history.table).to eq('Player')
end
RailsAdmin::History.all.each do |history|
expect(@delete_ids).to include(history.item)
end
expect(page).to have_selector('.alert-success', text: '2 Players successfully deleted')
end
end
describe 'cancelled bulk_deletion' do
before do
@players = 3.times.collect { FactoryGirl.create(:player) }
@delete_ids = @players[0..1].collect(&:id)
# NOTE: This uses an internal, unsupported capybara API which could break at any moment. We
# should refactor this test so that it either A) uses capybara's supported API (only GET
# requests via visit) or B) just uses Rack::Test (and doesn't use capybara for browser
# interaction like click_button).
page.driver.browser.reset_host!
page.driver.browser.process :post, bulk_action_path(bulk_action: 'bulk_delete', model_name: 'player', bulk_ids: @delete_ids, '_method' => 'post')
click_button 'Cancel'
end
it 'does not delete records' do
expect(RailsAdmin::AbstractModel.new('Player').count).to eq(3)
end
end
end