mirror of
https://github.com/internetee/registry.git
synced 2025-06-05 12:17:30 +02:00
Improve mass action tests
This commit is contained in:
parent
b61fe5f7b4
commit
cfa44f7692
6 changed files with 18 additions and 10 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
5
test/fixtures/files/mass_actions/valid_mass_force_delete_list.csv
vendored
Normal file
5
test/fixtures/files/mass_actions/valid_mass_force_delete_list.csv
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
domain_name,delete_reason
|
||||
shop.test,ENTITY_BURIED
|
||||
airport.test,PHONE
|
||||
library.test,EMAIL
|
||||
nonexistant.test,ENTITY_BURIED
|
|
|
@ -1,2 +0,0 @@
|
|||
domain_name,delete_reason
|
||||
shop.test,ENTITY_BURIED
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue