summaryrefslogtreecommitdiff
path: root/spec/classes/gitlab_ci_multi_runner_spec.rb
blob: 2092e9f7e81d4bb59b6a9d3224621f18d5d16eb3 (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
require 'spec_helper'

describe 'gitlab_ci_multi_runner', :type => :class do

  ['Debian', 'RedHat'].each do |osfamily|
    context "on #{osfamily}" do

      if osfamily == 'Debian'
        describe "gitlab_ci_multi_runner class without any parameters on #{osfamily}" do
          let(:params) {{ }}
          let(:facts) {{
            :osfamily                  => 'Debian',
            :concat_basedir            => '/dne',
            :operatingsystem           => 'Debian',
            :lsbdistid                 => 'Debian',
            :lsbdistcodename           => 'jessie',
            :operatingsystemmajrelease => '8',
          }}

          it { should compile.with_all_deps }

          it { should contain_class('gitlab_ci_multi_runner::params') }
          it { should contain_class('gitlab_ci_multi_runner::install').that_comes_before('gitlab_ci_multi_runner::config') }
          it { should contain_class('gitlab_ci_multi_runner::config') }
          it { should contain_class('gitlab_ci_multi_runner::service').that_subscribes_to('gitlab_ci_multi_runner::config') }

          it { should contain_class('apt') }
          it { should contain_package('apt-transport-https').that_comes_before('Apt::Source[gitlab-ci-multi-runner]').that_comes_before('Package[gitlab-ci-multi-runner]') }
          it { should contain_apt__source('gitlab-ci-multi-runner').with_location('https://packages.gitlab.com/runner/gitlab-ci-multi-runner/debian/') }

          it { should contain_service('gitlab-runner') }
          it { should contain_package('gitlab-ci-multi-runner').with_name('gitlab-ci-multi-runner').with_ensure('present') }

          it { should contain_package('apt-transport-https').with_ensure('present') }

          context 'with service_enable set to false' do
            let(:params) { {'service_enable' => false} }
            it { should_not contain_service('gitlab-ci-multi-runner') }
          end

        end
      end
    end
  end

  context 'unsupported operating system' do
    describe 'gitlab_ci_multi_runner class without any parameters on Solaris/Nexenta' do
      let(:facts) {{
        :osfamily        => 'Solaris',
        :operatingsystem => 'Nexenta',
      }}

      it { expect { should contain_package('gitlab_ci_multi_runner') }.to raise_error(Puppet::Error, /Nexenta not supported/) }
    end
  end
end