diff --git a/app/logical/bulk_update_request_processor.rb b/app/logical/bulk_update_request_processor.rb index 32c80fc27..4c93bfcd0 100644 --- a/app/logical/bulk_update_request_processor.rb +++ b/app/logical/bulk_update_request_processor.rb @@ -19,17 +19,17 @@ class BulkUpdateRequestProcessor case line when /\A(?:create alias|aliasing|alias) (\S+) -> (\S+)\z/i - [:create_alias, $1, $2] + [:create_alias, Tag.normalize_name($1), Tag.normalize_name($2)] when /\A(?:create implication|implicating|implicate|imply) (\S+) -> (\S+)\z/i - [:create_implication, $1, $2] + [:create_implication, Tag.normalize_name($1), Tag.normalize_name($2)] when /\A(?:remove alias|unaliasing|unalias) (\S+) -> (\S+)\z/i - [:remove_alias, $1, $2] + [:remove_alias, Tag.normalize_name($1), Tag.normalize_name($2)] when /\A(?:remove implication|unimplicating|unimplicate|unimply) (\S+) -> (\S+)\z/i - [:remove_implication, $1, $2] + [:remove_implication, Tag.normalize_name($1), Tag.normalize_name($2)] when /\A(?:mass update|updating|update|change) (.+?) -> (.*)\z/i [:mass_update, $1, $2] when /\Acategory (\S+) -> (#{Tag.categories.regexp})\z/i - [:change_category, $1, $2] + [:change_category, Tag.normalize_name($1), $2.downcase] else [:invalid_line, line] end diff --git a/app/models/bulk_update_request.rb b/app/models/bulk_update_request.rb index 531d10be2..996fde440 100644 --- a/app/models/bulk_update_request.rb +++ b/app/models/bulk_update_request.rb @@ -8,7 +8,6 @@ class BulkUpdateRequest < ApplicationRecord belongs_to :forum_post, optional: true belongs_to :approver, optional: true, class_name: "User" - before_validation :normalize_text validates_presence_of :reason, on: :create validates_presence_of :script validates_presence_of :title, if: ->(rec) {rec.forum_topic_id.blank?} @@ -117,10 +116,6 @@ class BulkUpdateRequest < ApplicationRecord extend SearchMethods include ApprovalMethods - def normalize_text - self.script = script.downcase - end - def update_tags self.tags = processor.affected_tags end diff --git a/test/unit/bulk_update_request_test.rb b/test/unit/bulk_update_request_test.rb index 7351a22be..d4154e127 100644 --- a/test/unit/bulk_update_request_test.rb +++ b/test/unit/bulk_update_request_test.rb @@ -65,6 +65,16 @@ class BulkUpdateRequestTest < ActiveSupport::TestCase assert_equal(false, @bur.valid?) assert_equal(["Can't create alias bbb -> aaa (A tag alias for aaa already exists)"], @bur.errors.full_messages) end + + should "be case-insensitive" do + @bur = create(:bulk_update_request, script: "CREATE ALIAS AAA -> BBB") + @bur.approve!(@admin) + perform_enqueued_jobs + + @alias = TagAlias.find_by(antecedent_name: "aaa", consequent_name: "bbb") + assert_equal(true, @alias.present?) + assert_equal(true, @alias.is_active?) + end end context "the create implication command" do @@ -161,6 +171,16 @@ class BulkUpdateRequestTest < ActiveSupport::TestCase should "update the tags" do assert_equal("bar", @post.reload.tag_string) end + + should "be case-sensitive" do + @post = create(:post, source: "imageboard") + @bur = create(:bulk_update_request, script: "mass update source:imageboard -> source:Imageboard") + + @bur.approve!(@admin) + perform_enqueued_jobs + + assert_equal("Imageboard", @post.reload.source) + end end end @@ -294,10 +314,6 @@ class BulkUpdateRequestTest < ActiveSupport::TestCase assert_equal("pending", @req.status) end - should "downcase the text" do - assert_equal("create alias aaa -> bbb", @req.script) - end - should "update the topic when processed" do assert_difference("ForumPost.count") do @req.approve!(@admin)