diff options
author | Thom May <thom@may.lt> | 2018-03-28 10:23:59 +0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-03-28 10:23:59 +0700 |
commit | 1775822934b6f42791cf46454027a3a17f14e726 (patch) | |
tree | 0581980aa9e0087de1ed1eeacce51deacf69edaf /spec/unit | |
parent | 7a6bf1531f91d121a21493924905cde37592a48b (diff) | |
parent | 2dc3fde7cde3779511108cff212f8f4bf32a33ce (diff) | |
download | chef-1775822934b6f42791cf46454027a3a17f14e726.tar.gz |
Merge pull request #7037 from chef/lcg/nil-sets-default
Setting nil to properties with implicit nil sets default value
Diffstat (limited to 'spec/unit')
-rw-r--r-- | spec/unit/property/validation_spec.rb | 55 |
1 files changed, 51 insertions, 4 deletions
diff --git a/spec/unit/property/validation_spec.rb b/spec/unit/property/validation_spec.rb index 882ea3353b..b05d8c4e17 100644 --- a/spec/unit/property/validation_spec.rb +++ b/spec/unit/property/validation_spec.rb @@ -617,8 +617,9 @@ describe "Chef::Resource.property validation" do expect(resource.x 1).to eq 1 expect(resource.x).to eq 1 end - it "value nil is invalid" do - expect { resource.x nil }.to raise_error Chef::Exceptions::ValidationFailed + it "value nil sets to the default" do + # this mildly complicated because the default of a name property is a lazy evaluator to the actual resource.name + expect(resource.x nil).to be_a(Chef::DelayedEvaluator) end end @@ -630,8 +631,54 @@ describe "Chef::Resource.property validation" do expect(resource.x 1).to eq 1 expect(resource.x).to eq 1 end - it "value nil is invalid" do - expect { resource.x nil }.to raise_error Chef::Exceptions::ValidationFailed + it "value nil sets the default" do + expect(resource.x nil).to eq 10 + expect(resource.x).to eq 10 + end + end + end + + context "nil setting default" do + with_property ":x, String" do + it "if x is not specified, the default is returned" do + expect(resource.x).to eq nil + end + it "value '2' is valid" do + expect(resource.x "2").to eq "2" + expect(resource.x).to eq "2" + end + it "value nil sets the default" do + resource.x "2" + expect(resource.x nil).to eq nil + expect(resource.x).to eq nil + end + end + with_property ":x, String, default: '1'" do + it "if x is not specified, the default is returned" do + expect(resource.x).to eq "1" + end + it "value '2' is valid" do + expect(resource.x "2").to eq "2" + expect(resource.x).to eq "2" + end + it "value nil sets the default" do + resource.x "2" + expect(resource.x nil).to eq "1" + expect(resource.x).to eq "1" + end + end + with_property ":x, [ String, nil ] , default: '1'" do + it "if x is not specified, the default is returned" do + expect(resource.x).to eq "1" + end + it "value '2' is valid" do + expect(resource.x "2").to eq "2" + expect(resource.x).to eq "2" + end + it "value nil sets to nil" do + resource.x "2" + expect(resource.x nil).to eq nil + expect(resource.x).to eq nil end end end |