summaryrefslogtreecommitdiff
path: root/spec/unit/cookbook/cookbook_version_loader_spec.rb
diff options
context:
space:
mode:
authordanielsdeleo <dan@getchef.com>2014-08-05 13:28:43 -0700
committerdanielsdeleo <dan@getchef.com>2014-08-12 11:03:09 -0700
commitf5ea885549b840cbb9008f739d1f6f1784e06f97 (patch)
tree2ba9660390029cd6beadc1e79707c59e411c2b41 /spec/unit/cookbook/cookbook_version_loader_spec.rb
parent98967ebcf02fa3a85f63a532ca5a43ce70dcfe6a (diff)
downloadchef-f5ea885549b840cbb9008f739d1f6f1784e06f97.tar.gz
Respect metadata name attribute
Fixes CHEF-3307
Diffstat (limited to 'spec/unit/cookbook/cookbook_version_loader_spec.rb')
-rw-r--r--spec/unit/cookbook/cookbook_version_loader_spec.rb28
1 files changed, 26 insertions, 2 deletions
diff --git a/spec/unit/cookbook/cookbook_version_loader_spec.rb b/spec/unit/cookbook/cookbook_version_loader_spec.rb
index 3e69a37d54..f60248a3b2 100644
--- a/spec/unit/cookbook/cookbook_version_loader_spec.rb
+++ b/spec/unit/cookbook/cookbook_version_loader_spec.rb
@@ -20,7 +20,7 @@ require 'spec_helper'
describe Chef::Cookbook::CookbookVersionLoader do
- describe "loading a simple cookbook" do
+ describe "loading a cookbook" do
let(:chefignore) { nil }
@@ -29,7 +29,7 @@ describe Chef::Cookbook::CookbookVersionLoader do
let(:cookbook_loader) { Chef::Cookbook::CookbookVersionLoader.new(cookbook_path, chefignore) }
let(:loaded_cookbook) do
- cookbook_loader.load_cookbooks
+ cookbook_loader.load!
cookbook_loader.cookbook_version
end
@@ -84,6 +84,30 @@ describe Chef::Cookbook::CookbookVersionLoader do
end
+ context "when the given path is not actually a cookbook" do
+
+ let(:cookbook_path) { File.join(CHEF_SPEC_DATA, "cookbooks/NOTHING_HERE_FOLKS") }
+
+ it "raises an error when loading with #load!" do
+ expect { cookbook_loader.load! }.to raise_error(Chef::Exceptions::CookbookNotFoundInRepo)
+ end
+
+ it "skips the cookbook when called with #load" do
+ expect { cookbook_loader.load }.to_not raise_error
+ end
+
+ end
+
+ context "when a cookbook has a metadata name different than directory basename" do
+
+ let(:cookbook_path) { File.join(CHEF_SPEC_DATA, "cookbooks/name-mismatch-versionnumber") }
+
+ it "prefers the metadata name to the directory basename" do
+ expect(loaded_cookbook.name).to eq(:"name-mismatch")
+ end
+
+ end
+
end
end