summaryrefslogtreecommitdiff
path: root/spec/services/ci/create_project_service_spec.rb
blob: c0af515aa8fc184a248c9d630a7f5fc78350e0d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
require 'spec_helper'

describe Ci::CreateProjectService do
  let(:service) { Ci::CreateProjectService.new }
  let(:current_user) { double.as_null_object }
  let(:project) { FactoryGirl.create :project }

  describe :execute do
    context 'valid params' do
      subject { service.execute(current_user, project) }

      it { is_expected.to be_kind_of(Ci::Project) }
      it { is_expected.to be_persisted }
    end

    context 'without project dump' do
      it 'should raise exception' do
        expect { service.execute(current_user, '', '') }.to raise_error
      end
    end

    context "forking" do
      let(:ci_origin_project) do
        FactoryGirl.create(:ci_project, shared_runners_enabled: true, public: true, allow_git_fetch: true)
      end

      subject { service.execute(current_user, project, ci_origin_project) }

      it "uses project as a template for settings and jobs" do
        expect(subject.shared_runners_enabled).to be_truthy
        expect(subject.public).to be_truthy
        expect(subject.allow_git_fetch).to be_truthy
      end
    end
  end
end