diff options
author | Robert Speicher <robert@gitlab.com> | 2016-08-04 00:39:20 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2016-08-04 00:39:20 +0000 |
commit | 532202a5278a622de874b9dfc1c4f7fe9ddf5ce4 (patch) | |
tree | 01c52630c9b20b42ada5fe454cb16e81a2962e32 /spec | |
parent | 8890376f0f72f713a7530bd7989e71442c69dc91 (diff) | |
parent | 443ae8c4e6682cd66eab0a2a7ec6ef913c0d684c (diff) | |
download | gitlab-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.rb | 24 |
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 |