Hi,
I’m using chefspec with chef 11 and have this working piece of code but
don’t know how to test it.
I hope this is the correct place to ask for any suggestions on this?
I also have a crude file exists check so that bundle doesn’t run every
chef_run.
bash “install with bundler” do
user "vagrant"
cwd "/vagrant"
flags "–login"
code <<-EOH
rvm use ruby-1.9.2-p290
bundle --verbose
EOH
xpath is the last in the list of 125 required gems for this application
(gem list --local)
If this gem is here we assume bundle has already run successfully.
not_if { ::File.exists?(’/home/vagrant/.rvm/gems/ruby-1.9.2-p290/gems/
xpath-0.1.4’) }
end
Prior to this code I was testing the execute command with this:
describe ‘main::install_bundle’ do
let (:chef_run) { ChefSpec::ChefRunner.new.converge ‘main::install_bundle’
}
it “installs with bundler” do
expect(chef_run).to execute_command(“cd /vagrant && rvm use
ruby-1.9.2-p290 && bundle --verbose”)
end
end
But I need the “–login” flag so that rvm can select ruby 1.9.2 so I
changed to the bash resource.
FYI …chef is running with ruby 1.9.3 but the Rails app uses 1.9.2 on the
/vagrant box (it’s some old coder I need to maintain).
Thanks!