Commit ad59f123 authored by Lin Jen-Shin's avatar Lin Jen-Shin

Test both execute and async_execute

parent 1868b8af
...@@ -9,12 +9,27 @@ describe Projects::DestroyService, services: true do ...@@ -9,12 +9,27 @@ describe Projects::DestroyService, services: true do
shared_examples 'deleting the project' do shared_examples 'deleting the project' do
it 'deletes 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?(path)).to be_falsey
expect(Dir.exist?(remove_path)).to be_falsey expect(Dir.exist?(remove_path)).to be_falsey
end end
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 context 'Sidekiq inline' do
before do before do
# Run sidekiq immediatly to check that renamed repository will be removed # Run sidekiq immediatly to check that renamed repository will be removed
...@@ -35,31 +50,24 @@ describe Projects::DestroyService, services: true do ...@@ -35,31 +50,24 @@ describe Projects::DestroyService, services: true do
it { expect(Dir.exist?(remove_path)).to be_truthy } it { expect(Dir.exist?(remove_path)).to be_truthy }
end end
context 'async delete of project with private issue visibility' do context 'with async_execute' do
let!(:async) { true } let(:async) { true }
before do context 'async delete of project with private issue visibility' do
project.project_feature.update_attribute("issues_access_level", ProjectFeature::PRIVATE) before do
# Run sidekiq immediately to check that renamed repository will be removed project.project_feature.update_attribute("issues_access_level", ProjectFeature::PRIVATE)
Sidekiq::Testing.inline! { destroy_project(project, user, {}) } # 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 end
it_behaves_like 'deleting the project' it_behaves_like 'deleting the project with pipeline and build'
end end
context 'delete with pipeline and build' do # which has optimistic locking context 'with execute' do
let!(:pipeline) { create(:ci_pipeline, project: project) } it_behaves_like 'deleting the project with pipeline and build'
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'
end end
context 'container registry' do context 'container registry' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment