FIX: synonym tags are not considered as unused (#23950)
Currently, `Tag.unused` scope is used to delete unused tags on `/tags` and by CleanUpTags job. Synonym tags, should not be included and treated as unused. Synonyms are only deleted when main tag is deleted: https://github.com/discourse/discourse/blob/main/app/models/tag.rb#L57
This commit is contained in:
parent
ee9aa02ab3
commit
09eca87c76
|
@ -30,7 +30,7 @@ class Tag < ActiveRecord::Base
|
|||
# tags that have never been used and don't belong to a tag group
|
||||
scope :unused,
|
||||
-> {
|
||||
where(staff_topic_count: 0, pm_topic_count: 0).joins(
|
||||
where(staff_topic_count: 0, pm_topic_count: 0, target_tag_id: nil).joins(
|
||||
"LEFT JOIN tag_group_memberships tgm ON tags.id = tgm.tag_id",
|
||||
).where("tgm.tag_id IS NULL")
|
||||
}
|
||||
|
|
|
@ -299,6 +299,7 @@ RSpec.describe Tag do
|
|||
)
|
||||
end
|
||||
let!(:tag_group) { Fabricate(:tag_group, tag_names: [tag_in_group.name]) }
|
||||
let!(:synonym_tag) { Fabricate(:tag, target_tag: tags.first) }
|
||||
|
||||
it "returns the correct tags" do
|
||||
expect(Tag.unused.pluck(:name)).to contain_exactly("unused1", "unused2")
|
||||
|
|
Loading…
Reference in New Issue