From f834e2907d5111f3e2bcd8d0dd126f9e0dd0be7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matija=20=C4=8Cupi=C4=87?= Date: Thu, 4 Jan 2018 19:13:30 +0100 Subject: Move cache reset to ci_cd_settings controller --- .../projects/settings/ci_cd_controller.rb | 9 +++++ app/controllers/projects_controller.rb | 9 ----- app/views/projects/pipelines/index.html.haml | 2 +- config/routes/project.rb | 5 ++- .../projects/settings/ci_cd_controller_spec.rb | 47 ++++++++++++++++++++++ spec/controllers/projects_controller_spec.rb | 47 ---------------------- 6 files changed, 60 insertions(+), 59 deletions(-) diff --git a/app/controllers/projects/settings/ci_cd_controller.rb b/app/controllers/projects/settings/ci_cd_controller.rb index b029b31f9af..1dcebcb15a6 100644 --- a/app/controllers/projects/settings/ci_cd_controller.rb +++ b/app/controllers/projects/settings/ci_cd_controller.rb @@ -11,6 +11,15 @@ module Projects define_auto_devops_variables end + def reset_cache + if ResetProjectCacheService.new(@project, current_user).execute + flash[:notice] = _("Project cache successfully reset.") + else + flash[:error] = _("Unable to reset project cache.") + end + redirect_to project_pipelines_path(@project) + end + private def define_runners_variables diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 928555c200b..6f609348402 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -175,15 +175,6 @@ class ProjectsController < Projects::ApplicationController ) end - def reset_cache - if ResetProjectCacheService.new(@project, current_user).execute - flash[:notice] = _("Project cache successfully reset.") - else - flash[:error] = _("Unable to reset project cache.") - end - redirect_to project_pipelines_path(@project) - end - def export @project.add_export_job(current_user: current_user) diff --git a/app/views/projects/pipelines/index.html.haml b/app/views/projects/pipelines/index.html.haml index d23cb626312..f8555f11aab 100644 --- a/app/views/projects/pipelines/index.html.haml +++ b/app/views/projects/pipelines/index.html.haml @@ -11,7 +11,7 @@ "can-create-pipeline" => can?(current_user, :create_pipeline, @project).to_s, "has-ci" => @repository.gitlab_ci_yml, "ci-lint-path" => ci_lint_path, - "reset-cache-path" => reset_cache_project_path(@project) } } + "reset-cache-path" => reset_cache_project_settings_ci_cd_path(@project) } } = page_specific_javascript_bundle_tag('common_vue') = page_specific_javascript_bundle_tag('pipelines') diff --git a/config/routes/project.rb b/config/routes/project.rb index d79c6e141c8..905c906b194 100644 --- a/config/routes/project.rb +++ b/config/routes/project.rb @@ -407,7 +407,9 @@ constraints(ProjectUrlConstrainer.new) do end namespace :settings do get :members, to: redirect("%{namespace_id}/%{project_id}/project_members") - resource :ci_cd, only: [:show], controller: 'ci_cd' + resource :ci_cd, only: [:show], controller: 'ci_cd' do + get :reset_cache + end resource :integrations, only: [:show] resource :repository, only: [:show], controller: :repository end @@ -436,7 +438,6 @@ constraints(ProjectUrlConstrainer.new) do get :download_export get :activity get :refs - get :reset_cache put :new_issuable_address end end diff --git a/spec/controllers/projects/settings/ci_cd_controller_spec.rb b/spec/controllers/projects/settings/ci_cd_controller_spec.rb index b8fe0f46f57..acd40f4a305 100644 --- a/spec/controllers/projects/settings/ci_cd_controller_spec.rb +++ b/spec/controllers/projects/settings/ci_cd_controller_spec.rb @@ -17,4 +17,51 @@ describe Projects::Settings::CiCdController do expect(response).to render_template(:show) end end + + describe '#reset_cache' do + before do + sign_in(user) + + project.add_master(user) + + allow(ResetProjectCacheService).to receive_message_chain(:new, :execute).and_return(true) + end + + subject { get :reset_cache, namespace_id: project.namespace, project_id: project } + + it 'calls reset project cache service' do + expect(ResetProjectCacheService).to receive_message_chain(:new, :execute) + + subject + end + + it 'redirects to project pipelines path' do + subject + + expect(response).to have_gitlab_http_status(:redirect) + expect(response).to redirect_to(project_pipelines_path(project)) + end + + context 'when service returns successfully' do + it 'sets the flash notice variable' do + subject + + expect(controller).to set_flash[:notice] + expect(controller).not_to set_flash[:error] + end + end + + context 'when service does not return successfully' do + before do + allow(ResetProjectCacheService).to receive_message_chain(:new, :execute).and_return(false) + end + + it 'sets the flash error variable' do + subject + + expect(controller).not_to set_flash[:notice] + expect(controller).to set_flash[:error] + end + end + end end diff --git a/spec/controllers/projects_controller_spec.rb b/spec/controllers/projects_controller_spec.rb index 2fc827742fe..e61187fb518 100644 --- a/spec/controllers/projects_controller_spec.rb +++ b/spec/controllers/projects_controller_spec.rb @@ -686,53 +686,6 @@ describe ProjectsController do end end - describe '#reset_cache' do - before do - sign_in(user) - - project.add_master(user) - - allow(ResetProjectCacheService).to receive_message_chain(:new, :execute).and_return(true) - end - - subject { get :reset_cache, namespace_id: project.namespace, id: project } - - it 'calls reset project cache service' do - expect(ResetProjectCacheService).to receive_message_chain(:new, :execute) - - subject - end - - it 'redirects to project pipelines path' do - subject - - expect(response).to have_gitlab_http_status(:redirect) - expect(response).to redirect_to(project_pipelines_path(project)) - end - - context 'when service returns successfully' do - it 'sets the flash notice variable' do - subject - - expect(controller).to set_flash[:notice] - expect(controller).not_to set_flash[:error] - end - end - - context 'when service does not return successfully' do - before do - allow(ResetProjectCacheService).to receive_message_chain(:new, :execute).and_return(false) - end - - it 'sets the flash error variable' do - subject - - expect(controller).not_to set_flash[:notice] - expect(controller).to set_flash[:error] - end - end - end - describe '#export' do before do sign_in(user) -- cgit v1.2.1