|
| 1 | +# frozen_string_literal: true |
| 2 | +require 'spec_helper_acceptance' |
| 3 | + |
| 4 | +describe 'deferred values with dsc_lite' do |
| 5 | + let(:control_manifest) do |
| 6 | + File.read(File.join(__dir__, '..', 'fixtures', 'manifests', '01_file_deferred.pp')) |
| 7 | + end |
| 8 | + |
| 9 | + let(:dsc_deferred_direct) do |
| 10 | + File.read(File.join(__dir__, '..', 'fixtures', 'manifests', '02_dsc_deferred_direct.pp')) |
| 11 | + end |
| 12 | + |
| 13 | + let(:dsc_deferred_var) do |
| 14 | + File.read(File.join(__dir__, '..', 'fixtures', 'manifests', '03_dsc_deferred_in_variable.pp')) |
| 15 | + end |
| 16 | + |
| 17 | + it 'applies with native file + deferred (control succeeds)' do |
| 18 | + idempotent_apply(control_manifest) |
| 19 | + # optionally verify file contents |
| 20 | + on(default, 'powershell.exe -NoProfile -NonInteractive -Command "(Get-Content -Raw C:/Temp/deferred_ok.txt)"') do |r| |
| 21 | + expect(r.stdout).to match(/hello-world/) |
| 22 | + end |
| 23 | + end |
| 24 | + |
| 25 | + context 'dsc_lite with deferred' do |
| 26 | + it 'fails when passing Deferred directly to a DSC property' do |
| 27 | + # We currently expect failure (documenting the bug). |
| 28 | + result = apply_manifest(dsc_deferred_direct, expect_failures: true) |
| 29 | + expect(result.stderr + result.stdout).to match(/Deferred|serialize|to_json|downcase|implicit conversion/i) |
| 30 | + end |
| 31 | + |
| 32 | + it 'fails when assigning Deferred to a variable then to a DSC property' do |
| 33 | + result = apply_manifest(dsc_deferred_var, expect_failures: true) |
| 34 | + expect(result.stderr + result.stdout).to match(/Deferred|serialize|to_json|downcase|implicit conversion/i) |
| 35 | + end |
| 36 | + end |
| 37 | +end |
0 commit comments