Skip to content
Snippets Groups Projects
Commit 64e2d884 authored by Douwe Maan's avatar Douwe Maan
Browse files

Return conflict error in label API when title is taken by group label

parent 1f949c0a
Branches
Tags
1 merge request!7014Return conflict error in label API when title is taken by group label
Pipeline #
Loading
Loading
@@ -1062,10 +1062,6 @@ class Project < ActiveRecord::Base
forks.count
end
 
def find_label(name)
labels.find_by(name: name)
end
def origin_merge_requests
merge_requests.where(source_project_id: self.id)
end
Loading
Loading
Loading
Loading
@@ -29,8 +29,8 @@ module API
required_attributes! [:name, :color]
 
attrs = attributes_for_keys [:name, :color, :description]
label = user_project.find_label(attrs[:name])
 
label = available_labels.find_by(title: attrs[:name])
conflict!('Label already exists') if label
 
label = user_project.labels.create(attrs)
Loading
Loading
@@ -54,7 +54,7 @@ module API
authorize! :admin_label, user_project
required_attributes! [:name]
 
label = user_project.find_label(params[:name])
label = user_project.labels.find_by(title: params[:name])
not_found!('Label') unless label
 
label.destroy
Loading
Loading
@@ -75,7 +75,7 @@ module API
authorize! :admin_label, user_project
required_attributes! [:name]
 
label = user_project.find_label(params[:name])
label = user_project.labels.find_by(title: params[:name])
not_found!('Label not found') unless label
 
attrs = attributes_for_keys [:new_name, :color, :description]
Loading
Loading
Loading
Loading
@@ -83,7 +83,20 @@ describe API::API, api: true do
expect(json_response['message']['title']).to eq(['is invalid'])
end
 
it 'returns 409 if label already exists' do
it 'returns 409 if label already exists in group' do
group = create(:group)
group_label = create(:group_label, group: group)
project.update(group: group)
post api("/projects/#{project.id}/labels", user),
name: group_label.name,
color: '#FFAABB'
expect(response).to have_http_status(409)
expect(json_response['message']).to eq('Label already exists')
end
it 'returns 409 if label already exists in project' do
post api("/projects/#{project.id}/labels", user),
name: 'label1',
color: '#FFAABB'
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment