Commit 14f78d067d703c20b788498cd90c40903ba9f84e

Authored by Dmitriy Zaporozhets
1 parent 900d3079

Modify specs for new project transfer code

Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
spec/requests/api/groups_spec.rb
@@ -147,7 +147,7 @@ describe API::API, api: true do @@ -147,7 +147,7 @@ describe API::API, api: true do
147 describe "POST /groups/:id/projects/:project_id" do 147 describe "POST /groups/:id/projects/:project_id" do
148 let(:project) { create(:project) } 148 let(:project) { create(:project) }
149 before(:each) do 149 before(:each) do
150 - project.stub(:transfer).and_return(true) 150 + Projects::TransferService.any_instance.stub(execute: true)
151 Project.stub(:find).and_return(project) 151 Project.stub(:find).and_return(project)
152 end 152 end
153 153
@@ -160,8 +160,8 @@ describe API::API, api: true do @@ -160,8 +160,8 @@ describe API::API, api: true do
160 160
161 context "when authenticated as admin" do 161 context "when authenticated as admin" do
162 it "should transfer project to group" do 162 it "should transfer project to group" do
163 - project.should_receive(:transfer)  
164 post api("/groups/#{group1.id}/projects/#{project.id}", admin) 163 post api("/groups/#{group1.id}/projects/#{project.id}", admin)
  164 + response.status.should == 201
165 end 165 end
166 end 166 end
167 end 167 end
spec/services/projects/transfer_service_spec.rb
1 require 'spec_helper' 1 require 'spec_helper'
2 2
3 -describe ProjectTransferService do 3 +describe Projects::TransferService do
4 before(:each) { enable_observers } 4 before(:each) { enable_observers }
5 after(:each) {disable_observers} 5 after(:each) {disable_observers}
6 6
7 - context 'namespace -> namespace' do  
8 - let(:user) { create(:user) }  
9 - let(:group) { create(:group) }  
10 - let(:project) { create(:project, namespace: user.namespace) } 7 + let(:user) { create(:user) }
  8 + let(:group) { create(:group) }
  9 + let(:group2) { create(:group) }
  10 + let(:project) { create(:project, namespace: user.namespace) }
11 11
  12 + context 'namespace -> namespace' do
12 before do 13 before do
13 - @result = service.transfer(project, group) 14 + group.add_owner(user)
  15 + @service = Projects::TransferService.new(project, user, namespace_id: group.id)
  16 + @service.gitlab_shell.stub(mv_repository: true)
  17 + @result = @service.execute
14 end 18 end
15 19
16 it { @result.should be_true } 20 it { @result.should be_true }
@@ -18,16 +22,25 @@ describe ProjectTransferService do @@ -18,16 +22,25 @@ describe ProjectTransferService do
18 end 22 end
19 23
20 context 'namespace -> no namespace' do 24 context 'namespace -> no namespace' do
21 - let(:user) { create(:user) }  
22 - let(:project) { create(:project, namespace: user.namespace) } 25 + before do
  26 + group.add_owner(user)
  27 + @service = Projects::TransferService.new(project, user, namespace_id: nil)
  28 + @service.gitlab_shell.stub(mv_repository: true)
  29 + @result = @service.execute
  30 + end
23 31
24 - it { lambda{service.transfer(project, nil)}.should raise_error(ActiveRecord::RecordInvalid) } 32 + it { @result.should be_false }
  33 + it { project.namespace.should == user.namespace }
25 end 34 end
26 35
27 - def service  
28 - service = ProjectTransferService.new  
29 - service.gitlab_shell.stub(mv_repository: true)  
30 - service 36 + context 'namespace -> not allowed namespace' do
  37 + before do
  38 + @service = Projects::TransferService.new(project, user, namespace_id: group2.id)
  39 + @service.gitlab_shell.stub(mv_repository: true)
  40 + @result = @service.execute
  41 + end
  42 +
  43 + it { @result.should be_false }
  44 + it { project.namespace.should == user.namespace }
31 end 45 end
32 end 46 end
33 -