Skip to content

Commit 907ef8d

Browse files
authored
Merge pull request #550 from rodjek/issue-549
Merge node derived facts only if the node name has been specified
2 parents c92dff4 + 40e78d8 commit 907ef8d

File tree

1 file changed

+12
-2
lines changed

1 file changed

+12
-2
lines changed

lib/rspec-puppet/support.rb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,21 @@ def facts_hash(node)
228228
{}
229229
end
230230

231+
# Merge in node facts so they always exist by default, but only if they
232+
# haven't been defined in `RSpec.configuration.default_facts`
233+
result_facts.merge!(munge_facts(node_facts)) { |_key, old_val, new_val| old_val.nil? ? new_val : old_val }
234+
(result_facts['networking'] ||= {}).merge!(networking_facts) { |_key, old_val, new_val| old_val.nil? ? new_val : old_val }
235+
236+
# Merge in `let(:facts)` facts
231237
result_facts.merge!(munge_facts(base_facts))
232238
result_facts.merge!(munge_facts(facts)) if self.respond_to?(:facts)
233-
result_facts.merge!(munge_facts(node_facts))
234239

235-
(result_facts['networking'] ||= {}).merge!(networking_facts)
240+
# Merge node facts again on top of `let(:facts)` facts, but only if
241+
# a node name is given with `let(:node)`
242+
if respond_to?(:node)
243+
result_facts.merge!(munge_facts(node_facts))
244+
(result_facts['networking'] ||= {}).merge!(networking_facts)
245+
end
236246

237247
# Facter currently supports lower case facts. Bug FACT-777 has been submitted to support case sensitive
238248
# facts.

0 commit comments

Comments
 (0)