diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2018-08-06 15:13:23 -0700 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2018-08-06 15:13:23 -0700 |
commit | a2c1a49a7f7d7c712db2097a5bb581f956416ac2 (patch) | |
tree | b73330983ee08c6c31f9c635eb4d46bfebf04126 | |
parent | 83ab18515911416ae3622dbcfd44c2ce56b76546 (diff) | |
download | chef-a2c1a49a7f7d7c712db2097a5bb581f956416ac2.tar.gz |
add rdoc and tests
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r-- | lib/chef/node_map.rb | 1 | ||||
-rw-r--r-- | lib/chef/resource.rb | 6 | ||||
-rw-r--r-- | spec/unit/resource_spec.rb | 26 |
3 files changed, 31 insertions, 2 deletions
diff --git a/lib/chef/node_map.rb b/lib/chef/node_map.rb index 9c3d223181..a4891234f5 100644 --- a/lib/chef/node_map.rb +++ b/lib/chef/node_map.rb @@ -66,6 +66,7 @@ EOH # override from cookbooks is allowed. # @param __core_override__ [Boolean] Advanced-mode override to add to a key # even in locked mode. + # @param chef_version [String] version constraint to match against the running Chef::VERSION # # @yield [node] Arbitrary node filter as a block which takes a node argument # diff --git a/lib/chef/resource.rb b/lib/chef/resource.rb index f65af0c7eb..1440b2eb61 100644 --- a/lib/chef/resource.rb +++ b/lib/chef/resource.rb @@ -1320,8 +1320,10 @@ class Chef # Once we no longer care about supporting chef < 14.4 then we can deprecate # this API. # - def self.chef_version_for_provides(arg) - @chef_version_for_provides = arg + # @param arg [String] version constrant to match against (e.g. "> 14") + # + def self.chef_version_for_provides(constraint) + @chef_version_for_provides = constraint end # diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb index a4f64e11e1..921ca6d33e 100644 --- a/spec/unit/resource_spec.rb +++ b/spec/unit/resource_spec.rb @@ -966,6 +966,32 @@ describe Chef::Resource do end end + describe "chef_version constraints and the platform map" do + let(:klz3) { Class.new(Chef::Resource) } + + it "doesn't wire up the provides when chef_version is < 1" do + klz3.provides :bulbasaur, chef_version: "< 1.0" # this should be false + expect { Chef::Resource.resource_for_node(:bulbasaur, node) }.to raise_error(Chef::Exceptions::NoSuchResourceType) + end + + it "wires up the provides when chef_version is > 1" do + klz3.provides :bulbasaur, chef_version: "> 1.0" # this should be true + expect(Chef::Resource.resource_for_node(:bulbasaur, node)).to eql(klz3) + end + + it "wires up the default when chef_version is < 1" do + klz3.chef_version_for_provides("< 1.0") # this should be false + klz3.provides :bulbasaur + expect { Chef::Resource.resource_for_node(:bulbasaur, node) }.to raise_error(Chef::Exceptions::NoSuchResourceType) + end + + it "wires up the default when chef_version is > 1" do + klz3.chef_version_for_provides("> 1.0") # this should be true + klz3.provides :bulbasaur + expect(Chef::Resource.resource_for_node(:bulbasaur, node)).to eql(klz3) + end + end + end describe "when creating notifications" do |