From b7c4df2df0b7d932a636c34405fb1890e7c5477c Mon Sep 17 00:00:00 2001 From: Albert Yi Date: Thu, 24 May 2018 10:24:14 -0700 Subject: [PATCH] fixes #3724 --- app/models/artist_url.rb | 2 +- test/unit/artist_test.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) 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