-
Notifications
You must be signed in to change notification settings - Fork 583
/
Copy pathstdlib_deferrable_epp_spec.rb
94 lines (83 loc) · 2.46 KB
/
stdlib_deferrable_epp_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# frozen_string_literal: true
require 'spec_helper_acceptance'
describe 'stdlib::deferable_epp function' do
let(:testfile) { (os[:family] == 'windows') ? 'C:\\test.epp' : '/tmp/test.epp' }
before(:all) do
apply_manifest(<<-MANIFEST)
$_epp = @(EPP)
<%- |
Stdlib::Port $port,
String[1] $password,
| -%>
port=<%= $port %>
password=<%= $password %>"
| EPP
$_testfile = $facts['os']['family'] ? {
'windows' => 'C:\\test.epp',
default => '/tmp/test.epp',
}
file{ $_testfile:
ensure => file,
content => $_epp,
}
MANIFEST
end
before(:each) do
rm_testfile = <<-MANIFEST
$_testfile = $facts['os']['family'] ? {
'windows' => 'C:\\test.epp',
default => '/tmp/test.epp',
}
file { "${_testfile}.rendered":
ensure => absent,
}
MANIFEST
apply_manifest(rm_testfile)
end
context 'with no deferred values' do
let(:pp) do
<<-MANIFEST
$_testfile = $facts['os']['family'] ? {
'windows' => 'C:\\test.epp',
default => '/tmp/test.epp',
}
file{ "${_testfile}.rendered":
ensure => file,
content => stdlib::deferrable_epp(
$_testfile,
{'port' => 1234, 'password' => 'top_secret'}
),
}
MANIFEST
end
it 'applies manifest, generates file' do
idempotent_apply(pp)
expect(file("#{testfile}.rendered")).to be_file
expect(file("#{testfile}.rendered").content).to match(%r{port=1234})
expect(file("#{testfile}.rendered").content).to match(%r{password=top_secret})
end
end
context 'with deferred values' do
let(:pp) do
<<-MANIFEST
$_testfile = $facts['os']['family'] ? {
'windows' => 'C:\\test.epp',
default => '/tmp/test.epp',
}
file{ "${_testfile}.rendered":
ensure => file,
content => stdlib::deferrable_epp(
$_testfile,
{'port' => 1234, 'password' => Deferred('inline_epp',['<%= $secret_password %>',{'secret_password' => 'so_secret'}])},
),
}
MANIFEST
end
it 'applies manifest, generates file' do
idempotent_apply(pp)
expect(file("#{testfile}.rendered")).to be_file
expect(file("#{testfile}.rendered").content).to match(%r{port=1234})
expect(file("#{testfile}.rendered").content).to match(%r{password=so_secret})
end
end
end