1+ # spec/acceptance/deferred_spec.rb
12# frozen_string_literal: true
2-
33require '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
0 commit comments