diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2017-07-26 12:49:54 +0000 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2017-07-26 12:49:54 +0000 |
commit | 5de3ec64da3f7154f72413ae12d2e13935533f2b (patch) | |
tree | b921866293f9aaa520cb058f195e91e079e6521e /spec/workers | |
parent | d29598e69190d6bc3a7d3cea44892d2db69d20e0 (diff) | |
parent | b5bdc55d239f3e19f8fe1e59b118da05ac81a0dd (diff) | |
download | gitlab-ce-5de3ec64da3f7154f72413ae12d2e13935533f2b.tar.gz |
Merge branch '29289-project-destroy-clean-up-after-failure' into 'master'
Handle errors while a project is being deleted asynchronously.
Closes #29289
See merge request !11088
Diffstat (limited to 'spec/workers')
-rw-r--r-- | spec/workers/project_destroy_worker_spec.rb | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/spec/workers/project_destroy_worker_spec.rb b/spec/workers/project_destroy_worker_spec.rb index 3d135f40c1f..f19c9dff941 100644 --- a/spec/workers/project_destroy_worker_spec.rb +++ b/spec/workers/project_destroy_worker_spec.rb @@ -1,24 +1,36 @@ require 'spec_helper' describe ProjectDestroyWorker do - let(:project) { create(:project, :repository) } + let(:project) { create(:project, :repository, pending_delete: true) } let(:path) { project.repository.path_to_repo } subject { described_class.new } - describe "#perform" do - it "deletes the project" do + describe '#perform' do + it 'deletes the project' do subject.perform(project.id, project.owner.id, {}) expect(Project.all).not_to include(project) expect(Dir.exist?(path)).to be_falsey end - it "deletes the project but skips repo deletion" do + it 'deletes the project but skips repo deletion' do subject.perform(project.id, project.owner.id, { "skip_repo" => true }) expect(Project.all).not_to include(project) expect(Dir.exist?(path)).to be_truthy end + + it 'does not raise error when project could not be found' do + expect do + subject.perform(-1, project.owner.id, {}) + end.not_to raise_error + end + + it 'does not raise error when user could not be found' do + expect do + subject.perform(project.id, -1, {}) + end.not_to raise_error + end end end |