11# spec/acceptance/deferred_spec.rb
22# frozen_string_literal: true
3-
43require 'spec_helper_acceptance'
54
65def read_fixture ( name )
76 File . read ( File . join ( __dir__ , '..' , 'fixtures' , 'manifests' , name ) )
87end
98
109describe 'deferred values with dsc_lite' do
11- let ( :control_manifest ) { read_fixture ( '01_file_deferred.pp' ) }
12- let ( :dsc_deferred_direct ) { read_fixture ( '02_dsc_deferred_direct.pp' ) }
13- let ( :dsc_deferred_var ) { read_fixture ( '03_dsc_deferred_in_variable.pp' ) }
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_variable ) { read_fixture ( '03_dsc_deferred_in_variable.pp' ) }
1413
1514 it 'applies with native file + deferred (control succeeds)' do
1615 idempotent_apply ( control_manifest )
17- on ( default , 'powershell.exe -NoProfile -NonInteractive -Command "(Get-Content -Raw C:/Temp/deferred_ok.txt)"' ) do |r |
18- expect ( r . stdout ) . to match ( %r{hello-world} )
19- end
16+
17+ # Litmus helper; returns a result with stdout/stderr/exit_code
18+ result = run_shell ( %q[powershell.exe -NoProfile -NonInteractive -Command "(Get-Content -Raw 'C:/Temp/deferred_ok.txt')"] )
19+ expect ( result . stdout ) . to match ( /hello-world/ )
2020 end
2121
2222 context 'dsc_lite with deferred' do
2323 it 'fails when passing Deferred directly to a DSC property' do
2424 result = apply_manifest ( dsc_deferred_direct , expect_failures : true )
25- # broad match: we only assert that a Deferred/serialization-like error occurs
26- expect ( result . stderr + result . stdout ) . to match ( %r{Deferred|serialize|to_json|implicit conversion|TypeError|cannot}i )
25+ expect ( result . stderr + result . stdout ) . to match ( /Deferred|serialize|to_json|implicit conversion|TypeError|cannot|Puppet::Pops::Types::Deferred/i )
2726 end
2827
2928 it 'fails when assigning Deferred to a variable then to a DSC property' do
30- result = apply_manifest ( dsc_deferred_var , expect_failures : true )
31- expect ( result . stderr + result . stdout ) . to match ( %r{ Deferred|serialize|to_json|implicit conversion|TypeError|cannot} i)
29+ result = apply_manifest ( dsc_deferred_variable , expect_failures : true )
30+ expect ( result . stderr + result . stdout ) . to match ( / Deferred|serialize|to_json|implicit conversion|TypeError|cannot|Puppet::Pops::Types::Deferred/ i)
3231 end
3332 end
34- end
33+ end
0 commit comments