summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy J. Miller <jm@chef.io>2018-05-16 07:50:39 -0400
committerJeremy J. Miller <jm@chef.io>2018-05-16 07:50:39 -0400
commitca3be72bd1f2b393dd2e70ed4620549d449b1559 (patch)
treee79ef868edaec017b61175239c5b6feb1dcd6179
parent7acbb49f913e7064e8736b0e56eff8ecf5acf10a (diff)
downloadchef-ca3be72bd1f2b393dd2e70ed4620549d449b1559.tar.gz
added one more rspec test
Signed-off-by: Jeremy J. Miller <jm@chef.io>
-rw-r--r--lib/chef/chef_fs/data_handler/data_handler_base.rb4
-rw-r--r--spec/unit/chef_fs/data_handler/data_handler_base_spec.rb15
2 files changed, 13 insertions, 6 deletions
diff --git a/lib/chef/chef_fs/data_handler/data_handler_base.rb b/lib/chef/chef_fs/data_handler/data_handler_base.rb
index 9fdc5579f2..c3cbb96ecc 100644
--- a/lib/chef/chef_fs/data_handler/data_handler_base.rb
+++ b/lib/chef/chef_fs/data_handler/data_handler_base.rb
@@ -63,8 +63,8 @@ class Chef
def normalize_hash(object, defaults)
# Make a normalized result in the specified order for diffing
result = {}
- defaults.each_pair do |key, default|
- result[key] = object.is_a?(Hash) && object.key?(key) ? object[key] : default
+ defaults.each_pair do |key, value|
+ result[key] = object.is_a?(Hash) && object.key?(key) ? object[key] : value
end
if object.is_a?(Hash)
object.each_pair do |key, value|
diff --git a/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb b/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb
index 2df468aca5..8f300b1dd0 100644
--- a/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb
+++ b/spec/unit/chef_fs/data_handler/data_handler_base_spec.rb
@@ -24,14 +24,16 @@ describe Chef::ChefFS::DataHandler::DataHandlerBase do
let(:some_item) do
{ "name" => "grizzly",
"gender" => "female",
- "age" => 3
+ "age" => 3,
+ "food" => "honey"
}
end
let(:item_defaults) do
{ "family" => "ursidae",
"hibernate" => true,
- "avg_lifespan_years" => 22,
+ "food" => "berries",
+ "avg_lifespan_years" => 22
}
end
@@ -41,16 +43,21 @@ describe Chef::ChefFS::DataHandler::DataHandlerBase do
"family" => "ursidae",
"hibernate" => true,
"avg_lifespan_years" => 22,
- "age" => 3
+ "age" => 3,
+ "food" => "honey"
}
end
let(:handler) { described_class.new }
- it "normalizes the Hash, filling in defaults" do
+ it "normalizes the Hash, filling in default values" do
expect(handler.normalize_hash(some_item, item_defaults)).to eq(normalized)
end
+ it "prefers already existing values over default values" do
+ expect(handler.normalize_hash(some_item, item_defaults)['food']).to eq("honey")
+ end
+
it "handles being passed a nil value instead of Hash" do
expect(handler.normalize_hash(nil, item_defaults)).to eq(item_defaults)
end