diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-01-31 13:35:26 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-01-31 13:35:26 +0000 |
commit | 86af3ed55e5a446d1d10168e890ab06d70fe6cbf (patch) | |
tree | 7ad2171a282db119dd39bc35d64b49024d7f8d09 /spec/controllers | |
parent | 83711c784db6403234e7bc48b3a6dafef4c10465 (diff) | |
parent | 5d871dccbee115691ef109dfc857123503869a0e (diff) | |
download | gitlab-ce-86af3ed55e5a446d1d10168e890ab06d70fe6cbf.tar.gz |
Merge branch '24021-Migrate-Projects-Labels-to-Group-Labels' into 'master'27283-fix-wrong-label-hide-show-whitespace
Promote project labels to group labels
Closes #24021
See merge request !7242
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/labels_controller_spec.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/spec/controllers/projects/labels_controller_spec.rb b/spec/controllers/projects/labels_controller_spec.rb index ec6cea5c0f4..3e0326dd47d 100644 --- a/spec/controllers/projects/labels_controller_spec.rb +++ b/spec/controllers/projects/labels_controller_spec.rb @@ -112,4 +112,49 @@ describe Projects::LabelsController do post :toggle_subscription, namespace_id: project.namespace.to_param, project_id: project.to_param, id: label.to_param end end + + describe 'POST #promote' do + let!(:promoted_label_name) { "Promoted Label" } + let!(:label_1) { create(:label, title: promoted_label_name, project: project) } + + context 'not group owner' do + it 'denies access' do + post :promote, namespace_id: project.namespace.to_param, project_id: project.to_param, id: label_1.to_param + + expect(response).to have_http_status(404) + end + end + + context 'group owner' do + before do + GroupMember.add_users_to_group(group, [user], :owner) + end + + it 'gives access' do + post :promote, namespace_id: project.namespace.to_param, project_id: project.to_param, id: label_1.to_param + + expect(response).to redirect_to(namespace_project_labels_path) + end + + it 'promotes the label' do + post :promote, namespace_id: project.namespace.to_param, project_id: project.to_param, id: label_1.to_param + + expect(Label.where(id: label_1.id)).to be_empty + expect(GroupLabel.find_by(title: promoted_label_name)).not_to be_nil + end + + context 'service raising InvalidRecord' do + before do + expect_any_instance_of(Labels::PromoteService).to receive(:execute) do |label| + raise ActiveRecord::RecordInvalid.new(label_1) + end + end + + it 'returns to label list' do + post :promote, namespace_id: project.namespace.to_param, project_id: project.to_param, id: label_1.to_param + expect(response).to redirect_to(namespace_project_labels_path) + end + end + end + end end |