summaryrefslogtreecommitdiff
path: root/spec/workers
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-07-26 12:49:54 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-07-26 12:49:54 +0000
commit5de3ec64da3f7154f72413ae12d2e13935533f2b (patch)
treeb921866293f9aaa520cb058f195e91e079e6521e /spec/workers
parentd29598e69190d6bc3a7d3cea44892d2db69d20e0 (diff)
parentb5bdc55d239f3e19f8fe1e59b118da05ac81a0dd (diff)
downloadgitlab-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.rb20
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