Project

General

Profile

« Previous | Next » 

Revision 1441db01

Added by Ewoud Kohl van Wijngaarden over 7 years ago

Simplify fact usage

View differences:

spec/classes/puppet_agent_spec.rb
require 'spec_helper'
describe 'puppet::agent' do
on_os_under_test.each do |os, os_facts|
on_os_under_test.each do |os, facts|
context "on #{os}" do
let (:default_facts) do
os_facts.merge({
:clientcert => 'puppetmaster.example.com',
:concat_basedir => '/nonexistant',
:fqdn => 'puppetmaster.example.com',
:puppetversion => Puppet.version,
}) end
if Puppet.version < '4.0'
client_package = 'puppet'
confdir = '/etc/puppet'
case os_facts[:osfamily]
case facts[:osfamily]
when 'FreeBSD'
client_package = 'puppet38'
confdir = '/usr/local/etc/puppet'
......
client_package = 'puppet-agent'
confdir = '/etc/puppetlabs/puppet'
additional_facts = {:rubysitedir => '/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.1.0'}
case os_facts[:osfamily]
case facts[:osfamily]
when 'FreeBSD'
client_package = 'puppet4'
confdir = '/usr/local/etc/puppet'
......
end
let :facts do
default_facts.merge(additional_facts)
facts.merge(additional_facts)
end
describe 'with no custom parameters' do
......
end
it do
should contain_puppet__config__agent('server').with({'value' => 'puppetmaster.example.com'})
should contain_puppet__config__agent('server').with_value('foo.example.com')
end
it do
......
describe 'global puppetmaster overrides fqdn' do
let(:pre_condition) { "class {'puppet': agent => true}" }
let :facts do
default_facts.merge({:puppetmaster => 'mymaster.example.com'})
facts.merge({:puppetmaster => 'mymaster.example.com'})
end
it do
should contain_puppet__config__agent('server').with({'value' => 'mymaster.example.com'})
......
describe 'puppetmaster parameter overrides global puppetmaster' do
let(:pre_condition) { "class {'puppet': agent => true, puppetmaster => 'mymaster.example.com'}" }
let :facts do
default_facts.merge({:puppetmaster => 'global.example.com'})
facts.merge({:puppetmaster => 'global.example.com'})
end
it do
should contain_puppet__config__agent('server').with({'value' => 'mymaster.example.com'})

Also available in: Unified diff