4 describe 'prosody::virtualhost' do
13 let(:title) { 'mockvirtualhost' }
16 @path_avail = "/etc/prosody/conf.avail/#{title}.cfg.lua"
17 @path_link = "/etc/prosody/conf.d/#{title}.cfg.lua"
20 context 'with no parameters' do
22 should contain_file(@path_avail).with(
28 should contain_file(@path_link).with(
31 require: "File[#{@path_avail}]"
36 context 'with ssl_key but no ssl_cert' do
37 let(:params) { { ssl_key: 'bananas' } }
40 should contain_class('prosody')
41 end.to raise_error(Puppet::Error)
45 context 'with ssl_cert but no ssl_key' do
46 let(:params) { { ssl_cert: 'bananas' } }
49 should contain_class('prosody')
50 end.to raise_error(Puppet::Error)
54 context 'with ssl keys and certs' do
55 let(:ssl_key) { '/etc/prosody/certs/rspec-puppet.com.key' }
56 let(:ssl_cert) { '/etc/prosody/certs/rspec-puppet.com.crt' }
57 let(:params) { { ssl_key: ssl_key, ssl_cert: ssl_cert } }
65 # This require statment is bananas
66 should contain_file(@path_avail).with(
68 require: ['File[/etc/prosody/certs/mockvirtualhost.key]', 'File[/etc/prosody/certs/mockvirtualhost.crt]', 'Class[Prosody::Package]']
71 should contain_file('/etc/prosody/certs/mockvirtualhost.key').with_source(@ssl_key)
72 should contain_file('/etc/prosody/certs/mockvirtualhost.crt').with_source(@ssl_cert)
76 context 'ensure => absent' do
77 let(:params) { { ensure: 'absent' } }
80 should contain_file(@path_avail).with(
86 should contain_file(@path_link).with_ensure('absent')
90 context 'with custom options' do
91 let(:params) { { custom_options: { 'foo' => 'bar', 'baz' => 'quux' } } }
93 should contain_file(@path_avail) \
94 .with_content(/^foo = "bar"$/, /^baz = "quux"$/)
98 context 'with deeply nested custom options' do
99 let(:params) { { custom_options: { 'foo' => { 'fnord' => '23', 'xyzzy' => '42' }, 'bar' => %w[cool elements], 'baz' => 'quux' } } }
101 should contain_file(@path_avail) \
102 .with_content(/^foo = {\n fnord = "23";\n xyzzy = "42";\n}$/, /^baz = "quux"$/, /^bar = [ "cool"; "elements" ]$/)