diff --git a/app/jobs/tag_nuke_job.rb b/app/jobs/tag_nuke_job.rb index 8054d7b46..425d17e46 100644 --- a/app/jobs/tag_nuke_job.rb +++ b/app/jobs/tag_nuke_job.rb @@ -28,7 +28,7 @@ class TagNukeJob < ApplicationJob Post.sql_raw_tag_match(tag_name).find_each do |post| post.with_lock do post.do_not_version_changes = true - post.tag_string_diff = "-#{tag_name}" + post.remove_tag(tag_name) post.save end end @@ -50,7 +50,7 @@ class TagNukeJob < ApplicationJob TagRelUndo.where(tag_rel: tag, applied: false).find_each do |tag_rel_undo| Post.where(id: tag_rel_undo.undo_data).find_each do |post| post.do_not_version_changes = true - post.tag_string_diff = tag.name + post.add_tag(tag.name) post.save end tag_rel_undo.update(applied: true) diff --git a/test/jobs/tag_nuke_job_test.rb b/test/jobs/tag_nuke_job_test.rb index 15de0011c..815354324 100644 --- a/test/jobs/tag_nuke_job_test.rb +++ b/test/jobs/tag_nuke_job_test.rb @@ -12,4 +12,13 @@ class TagNukeJobTest < ActiveJob::TestCase assert_equal("aa b c", p1.tag_string) assert_equal("dd y z", p2.tag_string) end + + should "ignore aliases" do + CurrentUser.user = create(:user) + post = create(:post, tag_string: "extra new_tag") + create(:tag_alias, antecedent_name: "old_tag", consequent_name: "new_tag", status: "active") + TagNukeJob.perform_now("old_tag", CurrentUser.user.id) + + assert_equal("extra new_tag", post.reload.tag_string) + end end