summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/project_label.rb2
-rw-r--r--spec/models/project_label_spec.rb10
2 files changed, 11 insertions, 1 deletions
diff --git a/app/models/project_label.rb b/app/models/project_label.rb
index a246a90435d..5b739bcdadf 100644
--- a/app/models/project_label.rb
+++ b/app/models/project_label.rb
@@ -14,7 +14,7 @@ class ProjectLabel < Label
private
def title_must_not_exist_at_group_level
- return unless group.present?
+ return unless group.present? && title_changed?
if group.labels.with_title(self.title).exists?
errors.add(:title, :label_already_exists_at_group_level, group: group.name)
diff --git a/spec/models/project_label_spec.rb b/spec/models/project_label_spec.rb
index 7966c52c38d..c861d4b73bb 100644
--- a/spec/models/project_label_spec.rb
+++ b/spec/models/project_label_spec.rb
@@ -40,6 +40,16 @@ describe ProjectLabel, models: true do
expect(label.errors[:title]).to be_empty
end
+
+ it 'does not returns error when title does not change' do
+ project_label = create(:label, project: project, name: 'Security')
+ create(:group_label, group: group, name: 'Security')
+ project_label.description = 'Security related stuff.'
+
+ project_label.valid?
+
+ expect(project_label .errors[:title]).to be_empty
+ end
end
end