diff options
author | Stan Hu <stanhu@gmail.com> | 2017-12-09 15:08:27 -0800 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2017-12-12 15:07:25 -0800 |
commit | ef78f67f4a2e19d204f5f4d4770649be1fe7bee9 (patch) | |
tree | 198ecbb47704b1d1478a9edc198c4eeb5336b124 | |
parent | 54f13b1ec8542dc5085e0367734e8344c2c3d01e (diff) | |
download | gitlab-ce-ef78f67f4a2e19d204f5f4d4770649be1fe7bee9.tar.gz |
Add a spec for rate limiting pipeline schedules
-rw-r--r-- | app/controllers/projects/pipeline_schedules_controller.rb | 4 | ||||
-rw-r--r-- | spec/controllers/projects/pipeline_schedules_controller_spec.rb | 10 |
2 files changed, 12 insertions, 2 deletions
diff --git a/app/controllers/projects/pipeline_schedules_controller.rb b/app/controllers/projects/pipeline_schedules_controller.rb index b7a0a3591cd..87878667e9b 100644 --- a/app/controllers/projects/pipeline_schedules_controller.rb +++ b/app/controllers/projects/pipeline_schedules_controller.rb @@ -45,7 +45,7 @@ class Projects::PipelineSchedulesController < Projects::ApplicationController limiter = ::Gitlab::ActionRateLimiter.new(action: 'play_pipeline_schedule') if limiter.throttled?(throttle_key, 1) - flash[:notice] = 'You cannot play this scheduled pipeline at the moment. Please wait a minute.' + flash[:alert] = 'You cannot play this scheduled pipeline at the moment. Please wait a minute.' return redirect_to pipeline_schedules_path(@project) end @@ -53,7 +53,7 @@ class Projects::PipelineSchedulesController < Projects::ApplicationController flash[:notice] = if job_id - "Successfully scheduled a pipeline to run. Go to the <a href=\"#{project_pipelines_path(@project)}\">Pipelines page</a> for details".html_safe + "Successfully scheduled a pipeline to run. Go to the <a href=\"#{project_pipelines_path(@project)}\">Pipelines page</a> for details.".html_safe else 'Unable to schedule a pipeline to run immediately' end diff --git a/spec/controllers/projects/pipeline_schedules_controller_spec.rb b/spec/controllers/projects/pipeline_schedules_controller_spec.rb index 844c62ef005..ffc1259eb8f 100644 --- a/spec/controllers/projects/pipeline_schedules_controller_spec.rb +++ b/spec/controllers/projects/pipeline_schedules_controller_spec.rb @@ -385,6 +385,16 @@ describe Projects::PipelineSchedulesController do expect(flash[:notice]).to start_with 'Successfully scheduled a pipeline to run' expect(response).to have_gitlab_http_status(302) end + + it 'prevents users from scheduling the same pipeline repeatedly' do + 2.times do + post :play, namespace_id: project.namespace.to_param, project_id: project, id: pipeline_schedule.id + end + + expect(flash.to_a.size).to eq(2) + expect(flash[:alert]).to eq 'You cannot play this scheduled pipeline at the moment. Please wait a minute.' + expect(response).to have_gitlab_http_status(302) + end end context 'when a developer attempts to schedule a protected ref' do |