summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorRobert Speicher <robert@gitlab.com>2016-08-04 00:39:20 +0000
committerRobert Speicher <robert@gitlab.com>2016-08-04 00:39:20 +0000
commit532202a5278a622de874b9dfc1c4f7fe9ddf5ce4 (patch)
tree01c52630c9b20b42ada5fe454cb16e81a2962e32 /spec
parent8890376f0f72f713a7530bd7989e71442c69dc91 (diff)
parent443ae8c4e6682cd66eab0a2a7ec6ef913c0d684c (diff)
downloadgitlab-ce-532202a5278a622de874b9dfc1c4f7fe9ddf5ce4.tar.gz
Merge branch 'fix-project-destroy-skip-repo' into 'master'
Fix skip_repo parameter being ignored when destroying a namespace When destroying a namespace, the `skip_repo` parameter is supposed to prevent the repository directory from being destroyed and allow the namespace after_destroy hook to run. If the namespace fails to be deleted for some reason, we could be left with repositories that are deleted with existing projects. See merge request !5654
Diffstat (limited to 'spec')
-rw-r--r--spec/workers/project_destroy_worker_spec.rb24
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/workers/project_destroy_worker_spec.rb b/spec/workers/project_destroy_worker_spec.rb
new file mode 100644
index 00000000000..1b910d9b91e
--- /dev/null
+++ b/spec/workers/project_destroy_worker_spec.rb
@@ -0,0 +1,24 @@
+require 'spec_helper'
+
+describe ProjectDestroyWorker do
+ let(:project) { create(:project) }
+ let(:path) { project.repository.path_to_repo }
+
+ subject { ProjectDestroyWorker.new }
+
+ describe "#perform" do
+ it "deletes the project" do
+ subject.perform(project.id, project.owner, {})
+
+ expect(Project.all).not_to include(project)
+ expect(Dir.exist?(path)).to be_falsey
+ end
+
+ it "deletes the project but skips repo deletion" do
+ subject.perform(project.id, project.owner, { "skip_repo" => true })
+
+ expect(Project.all).not_to include(project)
+ expect(Dir.exist?(path)).to be_truthy
+ end
+ end
+end