diff options
author | Robert Speicher <rspeicher@gmail.com> | 2018-12-19 19:23:55 +0000 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2018-12-19 19:23:55 +0000 |
commit | 832235395d83b06ca6de773847ebfb309c9af32d (patch) | |
tree | 3aeefa67415179f8e6401f1435044e1adc3a5f0e | |
parent | 347d16336246a20815f4a33b3d2cb32733fc6715 (diff) | |
parent | fa7ed15df69a9ed7bb7c9442aac1e379585e3ff1 (diff) | |
download | gitlab-ce-832235395d83b06ca6de773847ebfb309c9af32d.tar.gz |
Merge branch 'ce-reduce-deploy_keys_controller-diff-with-ce' into 'master'
Make Projects::DeployKeysController EE-ready
See merge request gitlab-org/gitlab-ce!23911
-rw-r--r-- | app/controllers/projects/deploy_keys_controller.rb | 2 | ||||
-rw-r--r-- | app/services/deploy_keys/create_service.rb | 2 | ||||
-rw-r--r-- | spec/controllers/projects/deploy_keys_controller_spec.rb | 36 |
3 files changed, 37 insertions, 3 deletions
diff --git a/app/controllers/projects/deploy_keys_controller.rb b/app/controllers/projects/deploy_keys_controller.rb index 0a593bd35b6..6824a07dc76 100644 --- a/app/controllers/projects/deploy_keys_controller.rb +++ b/app/controllers/projects/deploy_keys_controller.rb @@ -24,7 +24,7 @@ class Projects::DeployKeysController < Projects::ApplicationController end def create - @key = DeployKeys::CreateService.new(current_user, create_params).execute + @key = DeployKeys::CreateService.new(current_user, create_params).execute(project: @project) unless @key.valid? flash[:alert] = @key.errors.full_messages.join(', ').html_safe diff --git a/app/services/deploy_keys/create_service.rb b/app/services/deploy_keys/create_service.rb index a25e73666f8..0c935285657 100644 --- a/app/services/deploy_keys/create_service.rb +++ b/app/services/deploy_keys/create_service.rb @@ -2,7 +2,7 @@ module DeployKeys class CreateService < Keys::BaseService - def execute + def execute(project: nil) DeployKey.create(params.merge(user: user)) end end diff --git a/spec/controllers/projects/deploy_keys_controller_spec.rb b/spec/controllers/projects/deploy_keys_controller_spec.rb index a927d4329ef..e54cf3e8181 100644 --- a/spec/controllers/projects/deploy_keys_controller_spec.rb +++ b/spec/controllers/projects/deploy_keys_controller_spec.rb @@ -16,7 +16,7 @@ describe Projects::DeployKeysController do end context 'when html requested' do - it 'redirects to blob' do + it 'redirects to project settings with the correct anchor' do get :index, params: params expect(response).to redirect_to(project_settings_repository_path(project, anchor: 'js-deploy-keys-settings')) @@ -60,6 +60,40 @@ describe Projects::DeployKeysController do end end + describe 'POST create' do + def create_params(title = 'my-key') + { + namespace_id: project.namespace.path, + project_id: project.path, + deploy_key: { + title: title, + key: attributes_for(:deploy_key)[:key], + deploy_keys_projects_attributes: { '0' => { can_push: '1' } } + } + } + end + + it 'creates a new deploy key for the project' do + expect { post :create, params: create_params }.to change(project.deploy_keys, :count).by(1) + + expect(response).to redirect_to(project_settings_repository_path(project, anchor: 'js-deploy-keys-settings')) + end + + it 'redirects to project settings with the correct anchor' do + post :create, params: create_params + + expect(response).to redirect_to(project_settings_repository_path(project, anchor: 'js-deploy-keys-settings')) + end + + context 'when the deploy key is invalid' do + it 'shows an alert with the validations errors' do + post :create, params: create_params(nil) + + expect(flash[:alert]).to eq("Title can't be blank, Deploy keys projects deploy key title can't be blank") + end + end + end + describe '/enable/:id' do let(:deploy_key) { create(:deploy_key) } let(:project2) { create(:project) } |