module-nginx/spec/defines/resource_map_spec.rb
Matthew Haughton 1898182c6d spec: cleanup
* Removed some tests that no longer apply and/or are redundant
* Only set OS facts when testing OS-specific behaviors. This simplifies the
  facts that must be set in the specs and saves running the same tests
  several times when the results wouldn't differ by OS anyway.
2014-12-09 19:47:05 -05:00

94 lines
2.4 KiB
Ruby

require 'spec_helper'
describe 'nginx::resource::map' do
let :title do
'backend_pool'
end
let :default_params do
{
:string => '$uri',
:default => 'pool_a',
:mappings => {
'foo' => 'pool_b',
'bar' => 'pool_c',
'baz' => 'pool_d',
},
}
end
let :pre_condition do
[
'include ::nginx::config',
]
end
describe 'os-independent items' do
describe 'basic assumptions' do
let :params do default_params end
it { is_expected.to contain_file("/etc/nginx/conf.d/#{title}-map.conf").with(
{
'owner' => 'root',
'group' => 'root',
'mode' => '0644',
'ensure' => 'file',
'content' => /map \$uri \$#{title}/,
}
)}
end
describe "map.conf template content" do
[
{
:title => 'should set hostnames',
:attr => 'hostnames',
:value => true,
:match => ' hostnames;'
},
{
:title => 'should set default',
:attr => 'default',
:value => 'pool_a',
:match => [ ' default pool_a;' ],
},
{
:title => 'should contain ordered mappings',
:attr => 'mappings',
:value => {
'foo' => 'pool_b',
'bar' => 'pool_c',
'baz' => 'pool_d',
},
:match => [
' bar pool_c;',
' baz pool_d;',
' foo pool_b;',
],
},
].each do |param|
context "when #{param[:attr]} is #{param[:value]}" do
let :params do default_params.merge({ param[:attr].to_sym => param[:value] }) end
it { is_expected.to contain_file("/etc/nginx/conf.d/#{title}-map.conf").with_mode('0644') }
it param[:title] do
verify_contents(subject, "/etc/nginx/conf.d/#{title}-map.conf", Array(param[:match]))
Array(param[:notmatch]).each do |item|
is_expected.to contain_file("/etc/nginx/conf.d/#{title}-map.conf").without_content(item)
end
end
end
end
context 'when ensure => absent' do
let :params do default_params.merge(
{
:ensure => 'absent'
}
) end
it { is_expected.to contain_file("/etc/nginx/conf.d/#{title}-map.conf").with_ensure('absent') }
end
end
end
end