Add rake test and rspec for aegir::hostmaster

This commit is contained in:
Kienan Stewart 2018-06-17 11:33:36 -04:00
parent f3ef1c7be3
commit 55b530f564
5 changed files with 110 additions and 0 deletions

10
.fixtures.yml Normal file
View File

@ -0,0 +1,10 @@
fixtures:
symlinks:
"aegir": "#{source_dir}"
forge_modules:
"apt":
repo: "puppetlabs/apt"
ref: "4.5.1"
"stdlib":
repo: "puppetlabs/stdlib"
ref: "4.16.0"

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
spec/fixtures

23
Rakefile Normal file
View File

@ -0,0 +1,23 @@
require 'puppetlabs_spec_helper/rake_tasks'
defaults = [:validate, :spec]
begin
if Gem::Specification::find_by_name('metadata-json-lint')
defaults = defaults.insert(0, :metadata_lint)
end
if Gem::Specification::find_by_name('puppet-lint')
require 'puppet-lint/tasks/puppet-lint'
exclude_paths = [
'bundle/**/*',
'pkg/**/*',
'vendor/**/*',
'spec/**/*'
]
Rake::Task[:lint].clear
PuppetLint::RakeTask.new :lint do |config|
config.ignore_paths = exclude_paths
end
defaults = defaults.insert(-2, :lint)
end
end
task :test => defaults

View File

@ -0,0 +1,65 @@
require 'spec_helper'
describe 'aegir::hostmaster' do
let(:title) { 'aegir' }
let(:params) {
{ 'database' =>
{ 'host' => 'localhost',
'user' => 'aegir_root',
'password' => 'password' },
'manage_sources' => false
}
}
# Need to fill out a fair amounts of facts for the apt module.
let(:facts) {
{
:operatingsystem => 'Debian',
:osfamily => 'Debian',
:os => {
'name' => 'Debian',
'lsb' => {
'distcodename' => 'stretch'
},
'release' => {
'full' => '',
'major' => '9'
}
}
}
}
it do
is_expected.to contain_file('/var/lib/dpkg/aegir.response')
is_expected.to contain_package('aegir').with(
'ensure' => 'present',
'name' => 'aegir3'
)
end
context 'with manage_sources => true' do
let(:params) {
{ 'database' =>
{'host' => 'localhost',
'user' => 'aegir_root',
'password' => 'password' },
'manage_sources' => true
}
}
it { is_expected.to contain_class('aegir::source') }
end
context 'with server => nginx' do
let(:params) {
{ 'database' =>
{ 'host' => 'localhost',
'user' => 'aegir_root',
'password' => 'password' },
'manage_sources' => false,
'server' => 'nginx'
}
}
it do
is_expected.to contain_package('nginx').with_ensure('present')
is_expected.to contain_package('php7.0-fpm').with_ensure('present')
end
end
end

11
spec/spec_helper.rb Normal file
View File

@ -0,0 +1,11 @@
require 'puppetlabs_spec_helper/module_spec_helper'
require 'rspec-puppet'
fixture_path = File.join(File.dirname(File.expand_path(__FILE__)), 'fixtures')
RSpec.configure do |c|
c.module_path = File.join(fixture_path, 'modules')
c.manifest_dir = File.join(fixture_path, 'manifests')
c.manifest = File.join(fixture_path, 'manifests', 'site.pp')
c.environmentpath = File.join(Dir.pwd, 'spec')
end