Improve mass action tests

This commit is contained in:
Karl Erik Õunapuu 2020-11-05 15:37:28 +02:00
parent b61fe5f7b4
commit cfa44f7692
No known key found for this signature in database
GPG key ID: C9DD647298A34764
6 changed files with 18 additions and 10 deletions

View file

@ -12,7 +12,7 @@ module Admin
res = MassAction.process(params[:mass_action], params[:entry_list].path)
notice = if res
"#{params[:mass_action]} completed for #{res[:ok]}.\n" \
"Failed: objects: #{res[:fail]}"
"Failed: #{res[:fail]}"
else
"Dataset integrity validation failed for #{params[:mass_action]}"
end

View file

@ -1,9 +1,9 @@
class MassAction
def self.process(action_type, entries)
entries = CSV.read(entries, headers: true)
return process_force_delete(entries) if action_type == 'force_delete'
return false unless %w[force_delete].include?(action_type)
false
entries = CSV.read(entries, headers: true)
process_force_delete(entries) if action_type == force_delete
rescue StandardError
false
end
@ -29,7 +29,7 @@ class MassAction
def self.force_delete_entries_valid?(entries)
entries.each do |e|
reasons = %w[IDENT_BURIED EMAIL PHONE]
reasons = %w[ENTITY_BURIED EMAIL PHONE]
return false unless e['domain_name'].present? && reasons.include?(e['delete_reason'])
end

View file

@ -0,0 +1,5 @@
domain_name,delete_reason
shop.test,ENTITY_BURIED
airport.test,PHONE
library.test,EMAIL
nonexistant.test,ENTITY_BURIED
1 domain_name delete_reason
2 shop.test ENTITY_BURIED
3 airport.test PHONE
4 library.test EMAIL
5 nonexistant.test ENTITY_BURIED

View file

@ -1,2 +0,0 @@
domain_name,delete_reason
shop.test,ENTITY_BURIED
1 domain_name delete_reason
2 shop.test ENTITY_BURIED

View file

@ -9,15 +9,20 @@ class AdminAreaMassActionsForceDeleteTest < ApplicationSystemTestCase
def test_processes_uploaded_valid_csv
visit admin_mass_actions_path
attach_file('entry_list', Rails.root.join('test', 'fixtures', 'files', 'valid_mass_force_delete_list.csv').to_s)
attach_file('entry_list', Rails.root.join('test', 'fixtures', 'files', 'mass_actions', 'valid_mass_force_delete_list.csv').to_s)
click_link_or_button 'Start force delete process'
assert_text 'force_delete completed for ["shop.test"]. Failed: objects: []'
assert_text 'force_delete completed for ["shop.test", "airport.test", "library.test"]. Failed: ["nonexistant.test"]'
end
def test_processes_uploaded_invalid_csv
visit admin_mass_actions_path
attach_file(:entry_list, Rails.root.join('test', 'fixtures', 'files', 'invalid_mass_force_delete_list.csv').to_s)
attach_file(:entry_list, Rails.root.join('test', 'fixtures', 'files', 'mass_actions', 'invalid_mass_force_delete_list.csv').to_s)
click_link_or_button 'Start force delete process'
assert_text 'Dataset integrity validation failed for force_delete'
end
def test_logs_failed_domains_to_response
end
end