summaryrefslogtreecommitdiff
path: root/spec/services/projects/destroy_service_spec.rb
diff options
context:
space:
mode:
authorFrancisco Javier López <fjlopez@gitlab.com>2018-04-06 15:23:49 +0000
committerDouwe Maan <douwe@gitlab.com>2018-04-06 15:23:49 +0000
commitf20912df033d07c46b0989012244d96d0a12b66d (patch)
tree6207b8face17f9b7166ba1a5e047032e3927e53e /spec/services/projects/destroy_service_spec.rb
parent44f4a674e2a87d104f700265d835aba000c589f0 (diff)
downloadgitlab-ce-f20912df033d07c46b0989012244d96d0a12b66d.tar.gz
Extend API for importing a project export with overwrite support
Diffstat (limited to 'spec/services/projects/destroy_service_spec.rb')
-rw-r--r--spec/services/projects/destroy_service_spec.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb
index 9bb1cda565c..a66e3c5e995 100644
--- a/spec/services/projects/destroy_service_spec.rb
+++ b/spec/services/projects/destroy_service_spec.rb
@@ -248,6 +248,28 @@ describe Projects::DestroyService do
end
end
+ context '#attempt_restore_repositories' do
+ let(:path) { project.disk_path + '.git' }
+
+ before do
+ expect(project.gitlab_shell.exists?(project.repository_storage_path, path)).to be_truthy
+ expect(project.gitlab_shell.exists?(project.repository_storage_path, remove_path)).to be_falsey
+
+ # Dont run sidekiq to check if renamed repository exists
+ Sidekiq::Testing.fake! { destroy_project(project, user, {}) }
+
+ expect(project.gitlab_shell.exists?(project.repository_storage_path, path)).to be_falsey
+ expect(project.gitlab_shell.exists?(project.repository_storage_path, remove_path)).to be_truthy
+ end
+
+ it 'restores the repositories' do
+ Sidekiq::Testing.fake! { described_class.new(project, user).attempt_repositories_rollback }
+
+ expect(project.gitlab_shell.exists?(project.repository_storage_path, path)).to be_truthy
+ expect(project.gitlab_shell.exists?(project.repository_storage_path, remove_path)).to be_falsey
+ end
+ end
+
def destroy_project(project, user, params = {})
if async
Projects::DestroyService.new(project, user, params).async_execute