Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzciński <ayufan@ayufan.eu>2019-01-10 12:36:34 +0300
committerKamil Trzciński <ayufan@ayufan.eu>2019-01-10 12:36:34 +0300
commitdce04a924a963110ad4c182e8258a93a3e949581 (patch)
treeed390c69c58fcfe6da6f6c8a328455c631c2524c
parentbdc1ebd0c3a5d0b0639ae7f896c43b8ba3b8759e (diff)
parent50768a25ece480f48729985ad0f606ac73eb23fe (diff)
Merge branch 'add-uniqueness-validation-to-url-column-in-releases-link-model' into 'master'
Add uniqueness validation to url column in Releases::Link model Closes #55929 See merge request gitlab-org/gitlab-ce!24223
-rw-r--r--app/models/releases/link.rb2
-rw-r--r--changelogs/unreleased/add-uniqueness-validation-to-url-column-in-releases-link-model.yml5
-rw-r--r--spec/models/releases/link_spec.rb10
3 files changed, 16 insertions, 1 deletions
diff --git a/app/models/releases/link.rb b/app/models/releases/link.rb
index 766cb2efff2..6f639e5a7b2 100644
--- a/app/models/releases/link.rb
+++ b/app/models/releases/link.rb
@@ -6,7 +6,7 @@ module Releases
belongs_to :release
- validates :url, presence: true, url: true
+ validates :url, presence: true, url: true, uniqueness: { scope: :release }
validates :name, presence: true, uniqueness: { scope: :release }
scope :sorted, -> { order(created_at: :desc) }
diff --git a/changelogs/unreleased/add-uniqueness-validation-to-url-column-in-releases-link-model.yml b/changelogs/unreleased/add-uniqueness-validation-to-url-column-in-releases-link-model.yml
new file mode 100644
index 00000000000..7d767e220f7
--- /dev/null
+++ b/changelogs/unreleased/add-uniqueness-validation-to-url-column-in-releases-link-model.yml
@@ -0,0 +1,5 @@
+---
+title: Add uniqueness validation to url column in Releases::Link model
+merge_request: 24223
+author:
+type: other
diff --git a/spec/models/releases/link_spec.rb b/spec/models/releases/link_spec.rb
index e88c186cbb8..06ed1438688 100644
--- a/spec/models/releases/link_spec.rb
+++ b/spec/models/releases/link_spec.rb
@@ -31,6 +31,16 @@ describe Releases::Link do
end.to raise_error(ActiveRecord::RecordInvalid)
end
end
+
+ context 'when duplicate url is added to a release' do
+ let!(:link) { create(:release_link, url: 'http://gitlab.com', release: release) }
+
+ it 'raises an error' do
+ expect do
+ create(:release_link, url: 'http://gitlab.com', release: release)
+ end.to raise_error(ActiveRecord::RecordInvalid)
+ end
+ end
end
describe '.sorted' do