diff --git a/app/controllers/admin/mass_actions_controller.rb b/app/controllers/admin/mass_actions_controller.rb index faa810ee0..bc3491faf 100644 --- a/app/controllers/admin/mass_actions_controller.rb +++ b/app/controllers/admin/mass_actions_controller.rb @@ -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 diff --git a/app/models/mass_action.rb b/app/models/mass_action.rb index ab8b8ed4b..44e0dcc47 100644 --- a/app/models/mass_action.rb +++ b/app/models/mass_action.rb @@ -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 diff --git a/test/fixtures/files/invalid_mass_force_delete_list.csv b/test/fixtures/files/mass_actions/invalid_mass_force_delete_list.csv similarity index 100% rename from test/fixtures/files/invalid_mass_force_delete_list.csv rename to test/fixtures/files/mass_actions/invalid_mass_force_delete_list.csv diff --git a/test/fixtures/files/mass_actions/valid_mass_force_delete_list.csv b/test/fixtures/files/mass_actions/valid_mass_force_delete_list.csv new file mode 100644 index 000000000..3d8af84bd --- /dev/null +++ b/test/fixtures/files/mass_actions/valid_mass_force_delete_list.csv @@ -0,0 +1,5 @@ +domain_name,delete_reason +shop.test,ENTITY_BURIED +airport.test,PHONE +library.test,EMAIL +nonexistant.test,ENTITY_BURIED diff --git a/test/fixtures/files/valid_mass_force_delete_list.csv b/test/fixtures/files/valid_mass_force_delete_list.csv deleted file mode 100644 index 81f5bcf2c..000000000 --- a/test/fixtures/files/valid_mass_force_delete_list.csv +++ /dev/null @@ -1,2 +0,0 @@ -domain_name,delete_reason -shop.test,ENTITY_BURIED diff --git a/test/system/admin_area/mass_actions/mass_force_delete_test.rb b/test/system/admin_area/mass_actions/mass_force_delete_test.rb index 7b4688b32..57776e49f 100644 --- a/test/system/admin_area/mass_actions/mass_force_delete_test.rb +++ b/test/system/admin_area/mass_actions/mass_force_delete_test.rb @@ -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