summaryrefslogtreecommitdiff
path: root/spec
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
parent98967ebcf02fa3a85f63a532ca5a43ce70dcfe6a (diff)
downloadchef-f5ea885549b840cbb9008f739d1f6f1784e06f97.tar.gz
Respect metadata name attribute
Fixes CHEF-3307
Diffstat (limited to 'spec')
-rw-r--r--spec/data/cookbooks/name-mismatch-versionnumber/README.md4
-rw-r--r--spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb8
-rw-r--r--spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb8
-rw-r--r--spec/unit/cookbook/cookbook_version_loader_spec.rb28
-rw-r--r--spec/unit/cookbook_loader_spec.rb3
5 files changed, 48 insertions, 3 deletions
diff --git a/spec/data/cookbooks/name-mismatch-versionnumber/README.md b/spec/data/cookbooks/name-mismatch-versionnumber/README.md
new file mode 100644
index 0000000000..a61dc9a390
--- /dev/null
+++ b/spec/data/cookbooks/name-mismatch-versionnumber/README.md
@@ -0,0 +1,4 @@
+# name-mismatch
+
+TODO: Enter the cookbook description here.
+
diff --git a/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb b/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb
new file mode 100644
index 0000000000..81775bdcc8
--- /dev/null
+++ b/spec/data/cookbooks/name-mismatch-versionnumber/metadata.rb
@@ -0,0 +1,8 @@
+name 'name-mismatch'
+maintainer ''
+maintainer_email ''
+license ''
+description 'Installs/Configures name-mismatch'
+long_description 'Installs/Configures name-mismatch'
+version '0.1.0'
+
diff --git a/spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb b/spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb
new file mode 100644
index 0000000000..01d302f043
--- /dev/null
+++ b/spec/data/cookbooks/name-mismatch-versionnumber/recipes/default.rb
@@ -0,0 +1,8 @@
+#
+# Cookbook Name:: name-mismatch
+# Recipe:: default
+#
+# Copyright (C) 2014
+#
+#
+#
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
diff --git a/spec/unit/cookbook_loader_spec.rb b/spec/unit/cookbook_loader_spec.rb
index 03272af851..713347af7b 100644
--- a/spec/unit/cookbook_loader_spec.rb
+++ b/spec/unit/cookbook_loader_spec.rb
@@ -72,7 +72,8 @@ describe Chef::CookbookLoader do
seen[2].should == "borken"
seen[3].should == "ignorken"
seen[4].should == "java"
- seen[5].should == "openldap"
+ seen[5].should == "name-mismatch"
+ seen[6].should == "openldap"
end
end