Add a quick check to ensure puppetversion value is not nil and supporting test.
#
Facter.add("pe_version") do
setcode do
- pe_ver = Facter.value("puppetversion").match(/Puppet Enterprise (\d+\.\d+\.\d+)/)
- pe_ver[1] if pe_ver
+ puppet_ver = Facter.value("puppetversion")
+ if puppet_ver != nil
+ pe_ver = puppet_ver.match(/Puppet Enterprise (\d+\.\d+\.\d+)/)
+ pe_ver[1] if pe_ver
+ else
+ nil
+ end
end
end
Facter.collection.loader.load(:pe_version)
end
end
+
+ context "When puppetversion is nil" do
+ before :each do
+ Facter.fact(:puppetversion).stubs(:value).returns(nil)
+ end
+
+ it "pe_version is nil" do
+ expect(Facter.fact(:puppetversion).value).to be_nil
+ expect(Facter.fact(:pe_version).value).to be_nil
+ end
+ end
context "If PE is installed" do
%w{ 2.6.1 2.10.300 }.each do |version|
expect(Facter.fact(:pe_patch_version).value).to be_nil
end
end
+
end