diff --git a/app/models/artist_url.rb b/app/models/artist_url.rb index 965cb622c..8c0cac456 100644 --- a/app/models/artist_url.rb +++ b/app/models/artist_url.rb @@ -2,7 +2,7 @@ class ArtistUrl < ApplicationRecord before_validation :parse_prefix before_save :initialize_normalized_url, on: [ :create ] before_save :normalize - validates_presence_of :url + validates :url, presence: true, uniqueness: true validate :validate_url_format belongs_to :artist, :touch => true diff --git a/test/unit/artist_test.rb b/test/unit/artist_test.rb index d61f819fc..84d4ad0db 100644 --- a/test/unit/artist_test.rb +++ b/test/unit/artist_test.rb @@ -35,6 +35,13 @@ class ArtistTest < ActiveSupport::TestCase refute(@artist.urls[0].is_active?) end + should "not allow duplicate active+inactive urls" do + @artist = Artist.create(name: "blah", url_string: "-http://monet.com\nhttp://monet.com") + assert_equal(1, @artist.urls.count) + assert_equal(["-http://monet.com"], @artist.urls.map(&:to_s)) + refute(@artist.urls[0].is_active?) + end + should "should have a valid name" do @artist = Artist.new(:name => "-blah") @artist.save