Fix #4908: Prevent artist entries from being made on disambiguation tags.
Don't allow artist entries to be created for deprecated tags.
This commit is contained in:
@@ -174,6 +174,10 @@ class Artist < ApplicationRecord
|
||||
errors.add(:name, "'#{name}' is a #{tag.category_name.downcase} tag; artist entries can only be created for artist tags")
|
||||
end
|
||||
|
||||
if tag&.is_deprecated?
|
||||
errors.add(:name, "'#{name}' is an ambiguous tag; try another name")
|
||||
end
|
||||
|
||||
if tag_alias.present?
|
||||
errors.add(:name, "'#{name}' is aliased to '#{tag_alias.consequent_name}'")
|
||||
end
|
||||
|
||||
@@ -549,6 +549,14 @@ class ArtistTest < ActiveSupport::TestCase
|
||||
assert_equal(true, artist.invalid?)
|
||||
assert_match(/'foo' is aliased to 'bar'/, artist.errors.full_messages.join)
|
||||
end
|
||||
|
||||
should "not allow creating artist entries for deprecated tags" do
|
||||
create(:tag, name: "orange", is_deprecated: true)
|
||||
artist = build(:artist, name: "orange")
|
||||
|
||||
assert_equal(true, artist.invalid?)
|
||||
assert_match(/'orange' is an ambiguous tag/, artist.errors.full_messages.join)
|
||||
end
|
||||
end
|
||||
|
||||
context "when renaming" do
|
||||
|
||||
Reference in New Issue
Block a user