diff options
Diffstat (limited to 'lib/chef_zero/rspec.rb')
-rw-r--r-- | lib/chef_zero/rspec.rb | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/chef_zero/rspec.rb b/lib/chef_zero/rspec.rb index 6a3429b..5d702d6 100644 --- a/lib/chef_zero/rspec.rb +++ b/lib/chef_zero/rspec.rb @@ -137,12 +137,21 @@ module ChefZero end end - def self.cookbook(name, version, data, options = {}, &block) - before(:each) { cookbook(name, version, data, &block) } + def self.cookbook(name, version, data = {}, options = {}, &block) + before(:each) do + cookbook(name, version, data, &block) + end end - def cookbook(name, version, data, options = {}, &block) + def cookbook(name, version, data = {}, options = {}, &block) with_object_path("cookbooks/#{name}") do + if data.has_key?('metadata.rb') + if data['metadata.rb'].nil? + data.delete('metadata.rb') + end + else + data['metadata.rb'] = "name #{name.inspect}; version #{version.inspect}" + end ChefZero::RSpec.server.load_data({ 'cookbooks' => { "#{name}-#{version}" => data.merge(options) }}, current_org) instance_eval(&block) if block_given? end |