summaryrefslogtreecommitdiff
path: root/spec/classes/gitlab_ci_multi_runner_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/classes/gitlab_ci_multi_runner_spec.rb')
-rw-r--r--spec/classes/gitlab_ci_multi_runner_spec.rb56
1 files changed, 56 insertions, 0 deletions
diff --git a/spec/classes/gitlab_ci_multi_runner_spec.rb b/spec/classes/gitlab_ci_multi_runner_spec.rb
new file mode 100644
index 0000000..2092e9f
--- /dev/null
+++ b/spec/classes/gitlab_ci_multi_runner_spec.rb
@@ -0,0 +1,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