|
7 | 7 | let(:environment) { Puppet::Node::Environment.create(:testing, []) } |
8 | 8 | let(:facts) { Puppet::Node::Facts.new('node.example.com') } |
9 | 9 |
|
| 10 | + def compile_and_resolve_catalog(code, preprocess = false) |
| 11 | + catalog = compile_to_catalog(code) |
| 12 | + described_class.resolve_and_replace(facts, catalog, environment, preprocess) |
| 13 | + catalog |
| 14 | + end |
| 15 | + |
10 | 16 | it 'resolves deferred values in a catalog' do |
11 | | - catalog = compile_to_catalog(<<~END) |
| 17 | + catalog = compile_and_resolve_catalog(<<~END, true) |
12 | 18 | notify { "deferred": |
13 | 19 | message => Deferred("join", [[1,2,3], ":"]) |
14 | 20 | } |
15 | 21 | END |
16 | | - described_class.resolve_and_replace(facts, catalog) |
17 | 22 |
|
18 | 23 | expect(catalog.resource(:notify, 'deferred')[:message]).to eq('1:2:3') |
19 | 24 | end |
20 | 25 |
|
21 | 26 | it 'lazily resolves deferred values in a catalog' do |
22 | | - catalog = compile_to_catalog(<<~END) |
| 27 | + catalog = compile_and_resolve_catalog(<<~END) |
23 | 28 | notify { "deferred": |
24 | 29 | message => Deferred("join", [[1,2,3], ":"]) |
25 | 30 | } |
26 | 31 | END |
27 | | - described_class.resolve_and_replace(facts, catalog, environment, false) |
28 | 32 |
|
29 | 33 | deferred = catalog.resource(:notify, 'deferred')[:message] |
30 | 34 | expect(deferred.resolve).to eq('1:2:3') |
31 | 35 | end |
32 | 36 |
|
33 | 37 | it 'lazily resolves nested deferred values in a catalog' do |
34 | | - catalog = compile_to_catalog(<<~END) |
| 38 | + catalog = compile_and_resolve_catalog(<<~END) |
35 | 39 | $args = Deferred("inline_epp", ["<%= 'a,b,c' %>"]) |
36 | 40 | notify { "deferred": |
37 | 41 | message => Deferred("split", [$args, ","]) |
38 | 42 | } |
39 | 43 | END |
40 | | - described_class.resolve_and_replace(facts, catalog, environment, false) |
41 | 44 |
|
42 | 45 | deferred = catalog.resource(:notify, 'deferred')[:message] |
43 | 46 | expect(deferred.resolve).to eq(["a", "b", "c"]) |
|
0 commit comments