Skip to content

Commit 805f833

Browse files
committed
update tests
1 parent e43a61e commit 805f833

File tree

4 files changed

+45
-35
lines changed

4 files changed

+45
-35
lines changed

spec/acceptance/deferred_spec.rb

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,33 @@
1+
# spec/acceptance/deferred_spec.rb
12
# frozen_string_literal: true
2-
33
require 'spec_helper_acceptance'
44

5-
describe 'deferred values with dsc_lite' do
6-
let(:control_manifest) do
7-
File.read(File.join(__dir__, '..', 'fixtures', 'manifests', '01_file_deferred.pp'))
8-
end
9-
10-
let(:dsc_deferred_direct) do
11-
File.read(File.join(__dir__, '..', 'fixtures', 'manifests', '02_dsc_deferred_direct.pp'))
12-
end
5+
def read_fixture(name)
6+
File.read(File.join(__dir__, '..', 'fixtures', 'manifests', name))
7+
end
138

14-
let(:dsc_deferred_var) do
15-
File.read(File.join(__dir__, '..', 'fixtures', 'manifests', '03_dsc_deferred_in_variable.pp'))
16-
end
9+
describe 'deferred values with dsc_lite' do
10+
let(:control_manifest) { read_fixture('01_file_deferred.pp') }
11+
let(:dsc_deferred_direct) { read_fixture('02_dsc_deferred_direct.pp') }
12+
let(:dsc_deferred_var) { read_fixture('03_dsc_deferred_in_variable.pp') }
1713

1814
it 'applies with native file + deferred (control succeeds)' do
1915
idempotent_apply(control_manifest)
20-
# optionally verify file contents
2116
on(default, 'powershell.exe -NoProfile -NonInteractive -Command "(Get-Content -Raw C:/Temp/deferred_ok.txt)"') do |r|
22-
expect(r.stdout).to match(%r{hello-world})
17+
expect(r.stdout).to match(/hello-world/)
2318
end
2419
end
2520

2621
context 'dsc_lite with deferred' do
2722
it 'fails when passing Deferred directly to a DSC property' do
28-
# We currently expect failure (documenting the bug).
2923
result = apply_manifest(dsc_deferred_direct, expect_failures: true)
30-
expect(result.stderr + result.stdout).to match(%r{Deferred|serialize|to_json|downcase|implicit conversion}i)
24+
# broad match: we only assert that a Deferred/serialization-like error occurs
25+
expect(result.stderr + result.stdout).to match(/Deferred|serialize|to_json|implicit conversion|TypeError|cannot/i)
3126
end
3227

3328
it 'fails when assigning Deferred to a variable then to a DSC property' do
3429
result = apply_manifest(dsc_deferred_var, expect_failures: true)
35-
expect(result.stderr + result.stdout).to match(%r{Deferred|serialize|to_json|downcase|implicit conversion}i)
30+
expect(result.stderr + result.stdout).to match(/Deferred|serialize|to_json|implicit conversion|TypeError|cannot/i)
3631
end
3732
end
38-
end
33+
end
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1-
# manifest: 01_file_deferred.pp
1+
# 01_file_deferred.pp
2+
file { 'C:/Temp':
3+
ensure => directory,
4+
}
5+
26
file { 'C:/Temp/deferred_ok.txt':
37
ensure => file,
48
content => Deferred('join', [['hello','-','world'], '']),
9+
require => File['C:/Temp'],
510
}
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
# manifest: 02_dsc_deferred_direct.pp
1+
# 02_dsc_deferred_direct.pp
2+
file { 'C:/Temp':
3+
ensure => directory,
4+
}
5+
26
dsc { 'WriteFileViaDSC':
3-
dsc_resource_name => 'File',
4-
dsc_module => 'PSDesiredStateConfiguration',
5-
properties => {
6-
'DestinationPath' => 'C:\Temp\from_dsc.txt',
7-
'Type' => 'File',
8-
'Ensure' => 'Present',
9-
'Contents' => Deferred('join', [['hello','-','dsc'], '']),
7+
resource_name => 'File',
8+
module => 'PSDesiredStateConfiguration',
9+
properties => {
10+
DestinationPath => 'C:\Temp\from_dsc.txt',
11+
Type => 'File',
12+
Ensure => 'Present',
13+
Contents => Deferred('join', [['hello','-','dsc'], '']),
1014
},
15+
require => File['C:/Temp'],
1116
}
Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
# manifest: 03_dsc_deferred_in_variable.pp
1+
# 03_dsc_deferred_in_variable.pp
2+
file { 'C:/Temp':
3+
ensure => directory,
4+
}
5+
26
$value = Deferred('join', [['hello','-','var'], ''])
37

48
dsc { 'WriteFileViaDSCVar':
5-
dsc_resource_name => 'File',
6-
dsc_module => 'PSDesiredStateConfiguration',
7-
properties => {
8-
'DestinationPath' => 'C:\Temp\from_dsc_var.txt',
9-
'Type' => 'File',
10-
'Ensure' => 'Present',
11-
'Contents' => $value, # still a Deferred wrapper at this point
9+
resource_name => 'File',
10+
module => 'PSDesiredStateConfiguration',
11+
properties => {
12+
DestinationPath => 'C:\Temp\from_dsc_var.txt',
13+
Type => 'File',
14+
Ensure => 'Present',
15+
Contents => $value, # still a Deferred wrapper
1216
},
17+
require => File['C:/Temp'],
1318
}

0 commit comments

Comments
 (0)