2015-07-21 19:45:23 +02:00

103 lines
3.4 KiB
Ruby

require 'minitest/spec'
describe_recipe 'ark::test' do
# It's often convenient to load these includes in a separate
# helper along with
# your own helper methods, but here we just include them directly:
include MiniTest::Chef::Assertions
include MiniTest::Chef::Context
include MiniTest::Chef::Resources
it 'installed the unzip package' do
package('unzip').must_be_installed
end
if RUBY_PLATFORM =~ /freebsd/
it 'installs the gnu tar package on freebsc' do
package('gtar').must_be_installed
end
end
it 'puts an ark in the desired directory w/out symlinks' do
directory('/usr/local/test_put').must_exist
end
it 'dumps the correct files into place with correct owner and group' do
file('/usr/local/foo_dump/foo1.txt').must_have(:owner, 'foobarbaz').and(:group, 'foobarbaz')
end
it 'cherrypicks the mysql connector and set the correct owner and group' do
file('/usr/local/foo_cherry_pick/foo1.txt').must_have(:owner, 'foobarbaz').and(:group, 'foobarbaz')
end
it 'cherrypicks the file from a zip' do
file('/usr/local/foo_cherry_pick_from_zip/foo1.txt').must_exist
end
it 'creates directory and symlink properly for the full ark install' do
directory('/usr/local/foo-2').must_have(:owner, 'foobarbaz').and(:group, 'foobarbaz')
link('/usr/local/foo').must_exist.with(:link_type, :symbolic).and(:to, '/usr/local/foo-2')
end
it 'symlinks multiple binary commands' do
link('/usr/local/bin/do_foo').must_exist.with(:link_type, :symbolic).and(:to, '/usr/local/foo-2/bin/do_foo')
link('/usr/local/bin/do_more_foo').must_exist.with(:link_type, :symbolic).and(:to, '/usr/local/foo-2/bin/do_more_foo')
end
it 'appends to the environment PATH' do
unless RUBY_PLATFORM =~ /freebsd/
file('/etc/profile.d/foo_append_env.sh').must_include '/usr/local/foo_append_env-7.0.26/bin'
bin_path_present = !ENV['PATH'].scan('/usr/local/foo_append_env-7.0.26/bin').empty?
assert bin_path_present
end
end
it 'doesnt strip top-level directory if specified' do
directory('/usr/local/foo_dont_strip/foo_sub').must_exist
end
it 'does strip for zip file' do
file('/usr/local/foo_zip_strip/foo1.txt').must_exist
end
it 'successfully compiles haproxy' do
file('/usr/local/haproxy-1.5/haproxy').must_exist
end
unless RUBY_PLATFORM =~ /freebsd/
it 'installs haproxy binary' do
file('/usr/local/sbin/haproxy').must_exist
directory('/usr/local/doc/haproxy').must_exist
end
end
it 'creates an alternate prefix_bin' do
link('/opt/bin/do_foo').must_exist.with(:link_type, :symbolic).and(:to, '/opt/foo_alt_bin-3/bin/do_foo')
end
it 'properly unpacks .tbz and .tgz archives' do
file('/usr/local/foo_tbz/foo1.txt').must_exist
file('/usr/local/foo_tgz/foo1.txt').must_exist
end
it 'sends notification when resource updated' do
file('/tmp/foobarbaz/notification_successful.txt').must_exist
end
it 'uses autogen.sh to generate configure script' do
file('/usr/local/test_autogen-1/configure').must_exist
end
it 'strips 2 components out of foo_sub.tar.gz archive path' do
directory('/usr/local/foo_sub-1/bin').must_exist
file('/usr/local/foo_sub-1/foo1.txt').must_exist
end
it 'strips 2 components out of foo_sub.zip archive path' do
directory('/usr/local/foo_sub-2/bin').must_exist
file('/usr/local/foo_sub-2/foo1.txt').must_exist
end
end