diff --git a/lib/mixlib/install/product.rb b/lib/mixlib/install/product.rb index 3f3dc26e..f23dcffa 100644 --- a/lib/mixlib/install/product.rb +++ b/lib/mixlib/install/product.rb @@ -162,6 +162,9 @@ def products # # @return [Product] def lookup(key, version = :latest) + # return nil unless the product exists + return nil unless @product_map.key?(key) + product = @product_map[key] # We set the lookup version for the product to a very high number in # order to mimic :latest so that one does not need to handle this diff --git a/spec/unit/mixlib/install/product_spec.rb b/spec/unit/mixlib/install/product_spec.rb index 87d3c742..36258871 100644 --- a/spec/unit/mixlib/install/product_spec.rb +++ b/spec/unit/mixlib/install/product_spec.rb @@ -167,6 +167,10 @@ end end + it "returns nil when looking up a non-existent product" do + expect(PRODUCT_MATRIX.lookup("no-such-project")).to be_nil + end + it "returns nil for unset parameters" do expect(PRODUCT_MATRIX.lookup("chef").ctl_command).to be_nil end