From fd1723f0fcd0e8d5dbea3fd5ec18f271e3d6da0d Mon Sep 17 00:00:00 2001
From: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Date: Wed, 3 Jun 2015 13:08:17 +0200
Subject: [PATCH] Add tests for project destroy service

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
---
 .../services/projects/destroy_service_spec.rb | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)
 create mode 100644 spec/services/projects/destroy_service_spec.rb

diff --git a/spec/services/projects/destroy_service_spec.rb b/spec/services/projects/destroy_service_spec.rb
new file mode 100644
index 000000000000..cdf576cc0c13
--- /dev/null
+++ b/spec/services/projects/destroy_service_spec.rb
@@ -0,0 +1,34 @@
+require 'spec_helper'
+
+describe Projects::DestroyService do
+  let!(:user) { create(:user) }
+  let!(:project) { create(:project, namespace: user.namespace) }
+  let!(:path) { project.repository.path_to_repo }
+  let!(:remove_path) { path.sub(/\.git\Z/, "+#{project.id}+deleted.git") }
+
+  context 'Sidekiq inline' do
+    before do
+      # Run sidekiq immediatly to check that renamed repository will be removed
+      Sidekiq::Testing.inline! { destroy_project(project, user, {}) }
+    end
+
+    it { Project.all.should_not include(project) }
+    it { Dir.exists?(path).should be_falsey }
+    it { Dir.exists?(remove_path).should be_falsey }
+  end
+
+  context 'Sidekiq fake' do
+    before do
+      # Dont run sidekiq to check if renamed repository exists
+      Sidekiq::Testing.fake! { destroy_project(project, user, {}) }
+    end
+
+    it { Project.all.should_not include(project) }
+    it { Dir.exists?(path).should be_falsey }
+    it { Dir.exists?(remove_path).should be_truthy }
+  end
+
+  def destroy_project(project, user, params)
+    Projects::DestroyService.new(project, user, params).execute
+  end
+end
-- 
GitLab