Added test-kitchen and chefspec
This commit is contained in:
parent
f8de3964d2
commit
611e54f835
8 changed files with 122 additions and 0 deletions
25
.kitchen.yml
Normal file
25
.kitchen.yml
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
driver:
|
||||
name: docker
|
||||
|
||||
provisioner:
|
||||
name: chef_zero
|
||||
environments_path: test/environments
|
||||
client_rb:
|
||||
environment: integration_test_env
|
||||
|
||||
platforms:
|
||||
- name: centos-7.2-chef-12
|
||||
driver_config:
|
||||
image: centos:7.2.1511
|
||||
platform: rhel
|
||||
require_chef_omnibus: 12.16.42
|
||||
use_sudo: false
|
||||
hostname: integration.test.test
|
||||
|
||||
suites:
|
||||
- name: default
|
||||
data_bags_path: "test/integration/data_bags"
|
||||
run_list:
|
||||
- recipe[yum-rsyslog]
|
||||
|
7
Gemfile
Normal file
7
Gemfile
Normal file
|
@ -0,0 +1,7 @@
|
|||
source 'https://rubygems.org'
|
||||
gem 'berkshelf'
|
||||
gem 'test-kitchen'
|
||||
gem 'chefspec'
|
||||
gem 'foodcritic'
|
||||
gem 'kitchen-docker'
|
||||
|
1
chefignore
Normal file
1
chefignore
Normal file
|
@ -0,0 +1 @@
|
|||
.kitchen
|
10
spec/spec_helper.rb
Normal file
10
spec/spec_helper.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
require 'chefspec'
|
||||
require 'chefspec/berkshelf'
|
||||
|
||||
RSpec.configure do |config|
|
||||
config.platform = 'centos'
|
||||
config.version = '7.2.1511'
|
||||
end
|
||||
|
||||
ChefSpec::Coverage.start!
|
||||
|
44
spec/unit/recipes/default_spec.rb
Normal file
44
spec/unit/recipes/default_spec.rb
Normal file
|
@ -0,0 +1,44 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'yum-rsyslog::default' do
|
||||
context 'Creates rsyslog YUM repository and enables it.' do
|
||||
let(:chef_run) do
|
||||
ChefSpec::SoloRunner.new do |node|
|
||||
# Create a new environment (you could also use a different :let block or :before block)
|
||||
env = Chef::Environment.new
|
||||
env.name 'unit_test'
|
||||
|
||||
# Stub the node to return this environment
|
||||
allow(node).to receive(:chef_environment).and_return(env.name)
|
||||
|
||||
# Stub any calls to Environment.load to return this environment
|
||||
allow(Chef::Environment).to receive(:load).and_return(env)
|
||||
|
||||
# Stubbing out fqdn node attribute
|
||||
node.automatic['fqdn'] = 'unit.testing.stub'
|
||||
end.converge(described_recipe)
|
||||
end
|
||||
|
||||
#before(:each) do
|
||||
#stub_command("rpm -qa zabbix-release-2.4-1.el6.noarch ").and_return(false)
|
||||
#allow(Chef::EncryptedDataBagItem).to receive(:load).with('odhp_credentials', 'credentials').and_return(
|
||||
#{
|
||||
# 'zabbix' => {
|
||||
# 'users' => {
|
||||
# 'unit_test_env' => {
|
||||
# 'postgres' => {
|
||||
# 'username' => 'postgres_username',
|
||||
# 'password' => 'postgres_password'
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
# }
|
||||
#})
|
||||
#end
|
||||
|
||||
it 'installs the rsyslog repository' do
|
||||
expect(chef_run).to create_yum_repository('rsyslog')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
16
test/environments/integration_test_env.json
Normal file
16
test/environments/integration_test_env.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"name": "integration_test_env",
|
||||
"description": "placeholder for integration testing",
|
||||
"cookbook_versions": {
|
||||
|
||||
},
|
||||
"json_class": "Chef::Environment",
|
||||
"chef_type": "environment",
|
||||
"default_attributes": {
|
||||
|
||||
},
|
||||
"override_attributes": {
|
||||
|
||||
}
|
||||
}
|
||||
|
15
test/integration/default/serverspec/default_spec.rb
Normal file
15
test/integration/default/serverspec/default_spec.rb
Normal file
|
@ -0,0 +1,15 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe 'yum-rsyslog::default' do
|
||||
describe yumrepo('rsyslog') do
|
||||
it { should be_enabled }
|
||||
end
|
||||
|
||||
describe file('/etc/yum.repos.d/rsyslog.repo') do
|
||||
it { should be_file }
|
||||
it { should be_mode 644 }
|
||||
it { should be_owned_by 'root' }
|
||||
it { should be_grouped_into 'root' }
|
||||
end
|
||||
end
|
||||
|
4
test/integration/helpers/serverspec/spec_helper.rb
Normal file
4
test/integration/helpers/serverspec/spec_helper.rb
Normal file
|
@ -0,0 +1,4 @@
|
|||
require 'serverspec'
|
||||
|
||||
set :backend, :exec
|
||||
|
Loading…
Reference in a new issue