File: puppet_init_spec.rb

package info (click to toggle)
puppet-module-puppet 18.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 660 kB
  • sloc: ruby: 2,055; sh: 15; makefile: 10
file content (134 lines) | stat: -rw-r--r-- 4,065 bytes parent folder | download
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
require 'spec_helper'

describe 'puppet' do
  on_supported_os.each do |os, facts|
    context "on #{os}" do
      case facts[:osfamily]
      when 'FreeBSD'
        puppet_major = facts[:puppetversion].to_i

        puppet_concat    = '/usr/local/etc/puppet/puppet.conf'
        puppet_directory = '/usr/local/etc/puppet'
        puppet_package   = "puppet#{puppet_major}"
        puppetconf_mode  = '0644'
      when 'windows'
        puppet_concat    = 'C:/ProgramData/PuppetLabs/puppet/etc/puppet.conf'
        puppet_directory = 'C:/ProgramData/PuppetLabs/puppet/etc'
        puppet_package   = 'puppet-agent'
        puppetconf_mode  = '0674'
      when 'Archlinux'
        puppet_concat    = '/etc/puppetlabs/puppet/puppet.conf'
        puppet_directory = '/etc/puppetlabs/puppet'
        puppet_package   = 'puppet'
        puppetconf_mode  = '0644'
      else
        puppet_concat    = '/etc/puppetlabs/puppet/puppet.conf'
        puppet_directory = '/etc/puppetlabs/puppet'
        puppet_package   = 'puppet-agent'
        puppetconf_mode  = '0644'
      end

      let :facts do
        facts
      end

      describe 'with no custom parameters' do
        it { is_expected.to compile.with_all_deps unless facts[:osfamily] == 'windows' }
        it { should contain_class('puppet::agent') }
        it { should contain_class('puppet::config') }
        it { should_not contain_class('puppet::server') }
        it { should contain_file(puppet_directory).with_ensure('directory') }
        it { should contain_concat(puppet_concat).with_mode(puppetconf_mode) }
        it { should contain_package(puppet_package)
          .with_ensure('present')
          .with_install_options(nil)
        }
      end

      describe 'with server => true', :unless => unsupported_puppetserver_osfamily(facts[:osfamily]) do
        let :params do {
          :server => true,
        } end

        it { is_expected.to compile.with_all_deps }
        it { should contain_class('puppet::server') }
        it { should contain_class('puppet::agent::service').that_requires('Class[puppet::server]') }
      end

      describe 'with empty ca_server' do
        let :params do {
          :ca_server => '',
        } end

        it { should_not contain_puppet__config__main('ca_server') }
      end

      describe 'with ca_server' do
        let :params do {
          :ca_server => 'ca.example.org',
        } end

        it { should contain_puppet__config__main('ca_server').with_value('ca.example.org') }
      end

      describe 'with undef ca_port' do
        let :params do {
          :ca_port => :undef,
        } end

        it { should_not contain_puppet__config__main('ca_port') }
      end

      describe 'with ca_port' do
        let :params do {
          :ca_port => 8140,
        } end

        it { should contain_puppet__config__main('ca_port').with_value(8140) }
      end

      describe 'with puppetconf_mode' do
        let :params do {
          :puppetconf_mode => '0640',
        } end

        it { should contain_concat(puppet_concat).with_mode('0640') }
      end

      # compilation is broken due to paths
      context 'on non-windows', unless: facts[:osfamily] == 'windows' do
        describe 'with package_source => Httpurl' do
          let :params do {
            :package_source => 'https://example.com:123/test'
          } end

          it { is_expected.to compile }
        end

        describe 'with package_source => Unixpath' do
          let :params do {
            :package_source => '/test/folder/path/source.rpm'
          } end

          it { is_expected.to compile }
        end

        describe 'with package_source => Windowspath' do
          let :params do {
            :package_source => 'C:\test\folder\path\source.exe'
          } end

          it { is_expected.to compile }
        end

        describe 'with package_source => foo' do
          let :params do {
            :package_source => 'foo'
          } end

          it { is_expected.not_to compile }
        end
      end
    end
  end
end