mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 01:16:38 -06:00
FIX: removing hidden tag bumps topic when all tags are removed
JS sends empty string to remove all tags.
This commit is contained in:
parent
af08ab5b7b
commit
a08b2589d4
@ -527,7 +527,7 @@ class PostRevisor
|
||||
modifications = post_changes.merge(@topic_changes.diff)
|
||||
if modifications.keys.size == 1 && tags_diff = modifications["tags"]
|
||||
a, b = tags_diff[0] || [], tags_diff[1] || []
|
||||
changed_tags = (a + b) - (a & b)
|
||||
changed_tags = ((a + b) - (a & b)).map(&:presence).compact
|
||||
if (changed_tags - DiscourseTagging.hidden_tag_names(nil)).empty?
|
||||
return true
|
||||
end
|
||||
|
@ -762,6 +762,14 @@ describe PostRevisor do
|
||||
}.to_not change { topic.reload.bumped_at }
|
||||
end
|
||||
|
||||
it "doesn't bump topic if empty string is given" do
|
||||
topic.tags = Tag.where(name: ['important', 'secret']).to_a
|
||||
expect {
|
||||
result = subject.revise!(Fabricate(:admin), raw: post.raw, tags: [""])
|
||||
expect(result).to eq(true)
|
||||
}.to_not change { topic.reload.bumped_at }
|
||||
end
|
||||
|
||||
it "creates a hidden revision" do
|
||||
subject.revise!(Fabricate(:admin), raw: post.raw, tags: topic.tags.map(&:name) + ['secret'])
|
||||
expect(post.reload.revisions.first.hidden).to eq(true)
|
||||
|
Loading…
Reference in New Issue
Block a user