diff options
author | danielsdeleo <dan@getchef.com> | 2014-08-05 13:28:43 -0700 |
---|---|---|
committer | danielsdeleo <dan@getchef.com> | 2014-08-12 11:03:09 -0700 |
commit | f5ea885549b840cbb9008f739d1f6f1784e06f97 (patch) | |
tree | 2ba9660390029cd6beadc1e79707c59e411c2b41 /spec | |
parent | 98967ebcf02fa3a85f63a532ca5a43ce70dcfe6a (diff) | |
download | chef-f5ea885549b840cbb9008f739d1f6f1784e06f97.tar.gz |
Respect metadata name attribute
Fixes CHEF-3307
Diffstat (limited to 'spec')
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 |