From 5feb29ba57080a09d9618bdcb47e0147fbb65deb Mon Sep 17 00:00:00 2001 From: evazion Date: Mon, 4 May 2020 03:18:16 -0500 Subject: [PATCH] Fix #4441: BUR form: display original request in the error page. --- app/logical/alias_and_implication_importer.rb | 4 +++- app/models/bulk_update_request.rb | 9 +-------- test/functional/bulk_update_requests_controller_test.rb | 7 +++++++ 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/logical/alias_and_implication_importer.rb b/app/logical/alias_and_implication_importer.rb index 660c365c5..415715a78 100644 --- a/app/logical/alias_and_implication_importer.rb +++ b/app/logical/alias_and_implication_importer.rb @@ -73,7 +73,7 @@ class AliasAndImplicationImporter # okay else - raise Error, "Unknown token: #{token[0]}" + raise NotImplementedError, "Unknown token: #{token[0]}" # should never happen end end end @@ -90,6 +90,8 @@ class AliasAndImplicationImporter args[0] end end.sort.uniq + rescue Error + [] end private diff --git a/app/models/bulk_update_request.rb b/app/models/bulk_update_request.rb index cd8d34c76..e7719ebbc 100644 --- a/app/models/bulk_update_request.rb +++ b/app/models/bulk_update_request.rb @@ -15,7 +15,6 @@ class BulkUpdateRequest < ApplicationRecord validates_presence_of :title, if: ->(rec) {rec.forum_topic_id.blank?} validates_presence_of :forum_topic, if: ->(rec) {rec.forum_topic_id.present?} validates_inclusion_of :status, :in => %w(pending approved rejected) - validate :script_formatted_correctly validate :validate_script, :on => :create after_create :create_forum_topic @@ -110,15 +109,9 @@ class BulkUpdateRequest < ApplicationRecord end module ValidationMethods - def script_formatted_correctly - AliasAndImplicationImporter.tokenize(script) - rescue StandardError => e - errors[:base] << e.message - end - def validate_script AliasAndImplicationImporter.new(script, forum_topic_id, "1", skip_secondary_validations).validate! - rescue RuntimeError => e + rescue AliasAndImplicationImporter::Error => e errors[:base] << e.message end end diff --git a/test/functional/bulk_update_requests_controller_test.rb b/test/functional/bulk_update_requests_controller_test.rb index 13800bd06..f6b551448 100644 --- a/test/functional/bulk_update_requests_controller_test.rb +++ b/test/functional/bulk_update_requests_controller_test.rb @@ -30,6 +30,13 @@ class BulkUpdateRequestsControllerTest < ActionDispatch::IntegrationTest end end + should "fail for an invalid script" do + assert_difference("BulkUpdateRequest.count", 0) do + post_auth bulk_update_requests_path, @user, params: { bulk_update_request: attributes_for(:bulk_update_request).merge(script: "create alis gray -> grey") } + assert_response :success + end + end + should "fail for a blank reason" do assert_difference("BulkUpdateRequest.count", 0) do post_auth bulk_update_requests_path, @user, params: { bulk_update_request: attributes_for(:bulk_update_request).merge(reason: "") }