98 lines
3 KiB
Ruby
98 lines
3 KiB
Ruby
require 'spec_helper_acceptance'
|
|
|
|
describe "nginx::resource::vhost define:" do
|
|
context 'new vhost on port 80' do
|
|
it 'should configure a nginx vhost' do
|
|
|
|
pp = "
|
|
class { 'nginx': }
|
|
nginx::resource::vhost { 'www.puppetlabs.com':
|
|
ensure => present,
|
|
www_root => '/var/www/www.puppetlabs.com',
|
|
}
|
|
host { 'www.puppetlabs.com': ip => '127.0.0.1', }
|
|
file { ['/var/www','/var/www/www.puppetlabs.com']: ensure => directory }
|
|
file { '/var/www/www.puppetlabs.com/index.html': ensure => file, content => 'Hello from www\n', }
|
|
"
|
|
|
|
apply_manifest(pp, :catch_failures => true)
|
|
end
|
|
|
|
describe file('/etc/nginx/sites-available/www.puppetlabs.com.conf') do
|
|
it { is_expected.to be_file }
|
|
it { is_expected.to contain "www.puppetlabs.com" }
|
|
end
|
|
|
|
describe file('/etc/nginx/sites-enabled/www.puppetlabs.com.conf') do
|
|
it { is_expected.to be_linked_to '/etc/nginx/sites-available/www.puppetlabs.com.conf' }
|
|
end
|
|
|
|
describe service('nginx') do
|
|
it { is_expected.to be_running }
|
|
end
|
|
|
|
describe port(80) do
|
|
it { is_expected.to be_listening }
|
|
end
|
|
|
|
it 'should answer to www.puppetlabs.com' do
|
|
shell("/usr/bin/curl http://www.puppetlabs.com:80") do |r|
|
|
expect(r.stdout).to eq("Hello from www\n")
|
|
expect(r.exit_code).to be_zero
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'should run successfully with ssl' do
|
|
it 'should configure a nginx SSL vhost' do
|
|
|
|
pp = "
|
|
class { 'nginx': }
|
|
nginx::resource::vhost { 'www.puppetlabs.com':
|
|
ensure => present,
|
|
ssl => true,
|
|
ssl_cert => '/tmp/blah.cert',
|
|
ssl_key => '/tmp/blah.key',
|
|
www_root => '/var/www/www.puppetlabs.com',
|
|
}
|
|
host { 'www.puppetlabs.com': ip => '127.0.0.1', }
|
|
file { ['/var/www','/var/www/www.puppetlabs.com']: ensure => directory }
|
|
file { '/var/www/www.puppetlabs.com/index.html': ensure => file, content => 'Hello from www\n', }
|
|
"
|
|
|
|
apply_manifest(pp, :catch_failures => true)
|
|
end
|
|
|
|
describe file('/etc/nginx/sites-available/www.puppetlabs.com.conf') do
|
|
it { is_expected.to be_file }
|
|
it { is_expected.to contain "ssl on;" }
|
|
end
|
|
|
|
describe file('/etc/nginx/sites-enabled/www.puppetlabs.com.conf') do
|
|
it { is_expected.to be_linked_to '/etc/nginx/sites-available/www.puppetlabs.com.conf' }
|
|
end
|
|
|
|
describe service('nginx') do
|
|
it { is_expected.to be_running }
|
|
end
|
|
|
|
describe port(443) do
|
|
it { is_expected.to be_listening }
|
|
end
|
|
|
|
it 'should answer to http://www.puppetlabs.com' do
|
|
shell("/usr/bin/curl http://www.puppetlabs.com:80") do |r|
|
|
expect(r.stdout).to eq("Hello from www\n")
|
|
expect(r.exit_code).to eq(0)
|
|
end
|
|
end
|
|
|
|
it 'should answer to https://www.puppetlabs.com' do
|
|
# use --insecure because it's a self-signed cert
|
|
shell("/usr/bin/curl --insecure https://www.puppetlabs.com:443") do |r|
|
|
expect(r.stdout).to eq("Hello from www\n")
|
|
expect(r.exit_code).to eq(0)
|
|
end
|
|
end
|
|
end
|
|
end
|