File: optional_ensure_spec.rb

package info (click to toggle)
ruby-puppet-resource-api 1.9.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,232 kB
  • sloc: ruby: 9,573; sh: 4; makefile: 2
file content (45 lines) | stat: -rw-r--r-- 2,276 bytes parent folder | download | duplicates (2)
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
# frozen_string_literal: true

require 'spec_helper'
require 'tempfile'
require 'open3'

RSpec.describe 'a type with optional ensure' do
  # these common_args *have* to use debug to see the messages we are matching
  let(:common_args) { '--verbose --trace --strict=error --modulepath spec/fixtures --debug' }

  describe 'using `puppet apply`' do
    it 'creates an absent resource when ensure => present is specified' do
      stdout_str, _status = Open3.capture2e("puppet apply #{common_args} -e \"test_optional_ensure { newres: ensure => present, prop => 'myprop' }\"")
      expect(stdout_str).to match %r{Creating: Creating 'newres' with}
    end

    it 'deletes an existing resource when ensure => absent is specified' do
      stdout_str, _status = Open3.capture2e("puppet apply #{common_args} -e \"test_optional_ensure { existing: ensure => absent }\"")
      expect(stdout_str).to match %r{Deleting: Deleting 'existing'}
    end

    it 'does nothing when an unknown resource is referenced with no ensure' do
      stdout_str, _status = Open3.capture2e("puppet apply #{common_args} -e \"test_optional_ensure { missing: }\"")
      expect(stdout_str).to match %r{Test_optional_ensure\[missing\]: Nothing to manage: }
      expect(stdout_str).not_to match %r{Creating: }
      expect(stdout_str).not_to match %r{Updating: }
      expect(stdout_str).not_to match %r{Deleting: }
    end

    it 'does nothing when an existing resource is referenced with no ensure and no properties' do
      stdout_str, _status = Open3.capture2e("puppet apply #{common_args} -e \"test_optional_ensure { existing: }\"")
      expect(stdout_str).to match %r{Current State: \{:namevar=>"existing"}
      expect(stdout_str).not_to match %r{Creating: }
      expect(stdout_str).not_to match %r{Updating: }
      expect(stdout_str).not_to match %r{Deleting: }
    end

    it 'updates changed properties when an existing resource is referenced with no ensure' do
      stdout_str, _status = Open3.capture2e("puppet apply #{common_args} -e \"test_optional_ensure { existing: prop => 'asdf' }\"")
      expect(stdout_str).to match %r{Updating: Updating 'existing' with}
      expect(stdout_str).not_to match %r{Creating: }
      expect(stdout_str).not_to match %r{Deleting: }
    end
  end
end