diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2017-02-03 19:05:31 +0300 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2017-02-03 19:05:31 +0300 |
commit | ad59f123f24617834ec705b39e96dd4ff5f8d3bf (patch) | |
tree | 80a28e9f888cb8e4ababed463ac3c58aa964b087 /spec/services | |
parent | 1868b8af25a6ecf3e893782b3ff750da57dc07c3 (diff) |
Test both execute and async_execute
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/projects/destroy_service_spec.rb | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb index 38bd2ed773e..3faa88c00a1 100644 --- a/spec/services/projects/destroy_service_spec.rb +++ b/spec/services/projects/destroy_service_spec.rb @@ -9,12 +9,27 @@ describe Projects::DestroyService, services: true do shared_examples 'deleting the project' do it 'deletes the project' do - expect(Project.all).not_to include(project) + expect(Project.unscoped.all).not_to include(project) expect(Dir.exist?(path)).to be_falsey expect(Dir.exist?(remove_path)).to be_falsey end end + shared_examples 'deleting the project with pipeline and build' do + context 'with pipeline and build' do # which has optimistic locking + let!(:pipeline) { create(:ci_pipeline, project: project) } + let!(:build) { create(:ci_build, :artifacts, pipeline: pipeline) } + + before do + perform_enqueued_jobs do + destroy_project(project, user, {}) + end + end + + it_behaves_like 'deleting the project' + end + end + context 'Sidekiq inline' do before do # Run sidekiq immediatly to check that renamed repository will be removed @@ -35,31 +50,24 @@ describe Projects::DestroyService, services: true do it { expect(Dir.exist?(remove_path)).to be_truthy } end - context 'async delete of project with private issue visibility' do - let!(:async) { true } + context 'with async_execute' do + let(:async) { true } - before do - project.project_feature.update_attribute("issues_access_level", ProjectFeature::PRIVATE) - # Run sidekiq immediately to check that renamed repository will be removed - Sidekiq::Testing.inline! { destroy_project(project, user, {}) } + context 'async delete of project with private issue visibility' do + before do + project.project_feature.update_attribute("issues_access_level", ProjectFeature::PRIVATE) + # Run sidekiq immediately to check that renamed repository will be removed + Sidekiq::Testing.inline! { destroy_project(project, user, {}) } + end + + it_behaves_like 'deleting the project' end - it_behaves_like 'deleting the project' + it_behaves_like 'deleting the project with pipeline and build' end - context 'delete with pipeline and build' do # which has optimistic locking - let!(:pipeline) { create(:ci_pipeline, project: project) } - let!(:build) { create(:ci_build, :artifacts, pipeline: pipeline) } - - before do - expect(project).to receive(:destroy!).and_call_original - - perform_enqueued_jobs do - destroy_project(project, user, {}) - end - end - - it_behaves_like 'deleting the project' + context 'with execute' do + it_behaves_like 'deleting the project with pipeline and build' end context 'container registry' do |