diff options
Diffstat (limited to 'spec/services/projects/destroy_service_spec.rb')
-rw-r--r-- | spec/services/projects/destroy_service_spec.rb | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb index 5410e784cc0..b2a68bbd0aa 100644 --- a/spec/services/projects/destroy_service_spec.rb +++ b/spec/services/projects/destroy_service_spec.rb @@ -93,10 +93,26 @@ RSpec.describe Projects::DestroyService, :aggregate_failures do destroy_project(project, user, {}) end - it 'performs cancel for project ci pipelines' do - expect(::Ci::AbortProjectPipelinesService).to receive_message_chain(:new, :execute).with(project) + context 'with abort_deleted_project_pipelines feature disabled' do + it 'does not cancel project ci pipelines' do + stub_feature_flags(abort_deleted_project_pipelines: false) - destroy_project(project, user, {}) + expect(::Ci::AbortPipelinesService).not_to receive(:new) + + destroy_project(project, user, {}) + end + end + + context 'with abort_deleted_project_pipelines feature enabled' do + it 'performs cancel for project ci pipelines' do + stub_feature_flags(abort_deleted_project_pipelines: true) + pipelines = build_list(:ci_pipeline, 3, :running) + allow(project).to receive(:all_pipelines).and_return(pipelines) + + expect(::Ci::AbortPipelinesService).to receive_message_chain(:new, :execute).with(pipelines, :project_deleted) + + destroy_project(project, user, {}) + end end context 'when project has remote mirrors' do |