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 147 describe "POST /groups/:id/projects/:project_id" do
148 148 let(:project) { create(:project) }
149 149 before(:each) do
150   - project.stub(:transfer).and_return(true)
  150 + Projects::TransferService.any_instance.stub(execute: true)
151 151 Project.stub(:find).and_return(project)
152 152 end
153 153  
... ... @@ -160,8 +160,8 @@ describe API::API, api: true do
160 160  
161 161 context "when authenticated as admin" do
162 162 it "should transfer project to group" do
163   - project.should_receive(:transfer)
164 163 post api("/groups/#{group1.id}/projects/#{project.id}", admin)
  164 + response.status.should == 201
165 165 end
166 166 end
167 167 end
... ...
spec/services/projects/transfer_service_spec.rb
1 1 require 'spec_helper'
2 2  
3   -describe ProjectTransferService do
  3 +describe Projects::TransferService do
4 4 before(:each) { enable_observers }
5 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 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 18 end
15 19  
16 20 it { @result.should be_true }
... ... @@ -18,16 +22,25 @@ describe ProjectTransferService do
18 22 end
19 23  
20 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 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 45 end
32 46 end
33   -
... ...