From a8506073e097cd9ff9a4b152d3675a3ea82e4070 Mon Sep 17 00:00:00 2001 From: Mihmet Akpinar Date: Tue, 25 Jun 2024 13:03:02 +0200 Subject: [PATCH] add spec tests with mock vault_version fact --- spec/acceptance/class_spec.rb | 40 ++++++++++++++++++++++++++++++++++ spec/spec_helper_acceptance.rb | 1 + 2 files changed, 41 insertions(+) diff --git a/spec/acceptance/class_spec.rb b/spec/acceptance/class_spec.rb index 2147a5d8..773420d3 100644 --- a/spec/acceptance/class_spec.rb +++ b/spec/acceptance/class_spec.rb @@ -82,6 +82,46 @@ class { 'file_capability': describe port(8200) do it { is_expected.to be_listening.on('127.0.0.1').with('tcp') } end + + describe command('/usr/local/bin/vault version') do + its(:exit_status) { is_expected.to eq 0 } + its(:stdout) { is_expected.to match %r{Vault v1.12.0} } + end + end + + context 'default parameters with vesion higher than fact' do + let(:manifest) do + <<-PUPPET + if $facts['os']['name'] == 'Archlinux' { + class { 'file_capability': + package_name => 'libcap', + } + } else { + include file_capability + } + package { 'unzip': ensure => present } + -> class { 'vault': + storage => { + file => { + path => '/tmp', + } + }, + bin_dir => '/usr/local/bin', + install_method => 'archive', + version => '1.12.1', + require => Class['file_capability'], + } + PUPPET + end + + it 'should not be idempotent and cause changes' do + apply_manifest(manifest, expect_changes: true) + end + + describe command('/usr/local/bin/vault version') do + its(:exit_status) { is_expected.to eq 0 } + its(:stdout) { is_expected.to match %r{Vault v1.12.1} } + end end context 'with package based setup' do diff --git a/spec/spec_helper_acceptance.rb b/spec/spec_helper_acceptance.rb index 2681792e..4e1d21c2 100644 --- a/spec/spec_helper_acceptance.rb +++ b/spec/spec_helper_acceptance.rb @@ -5,6 +5,7 @@ require 'voxpupuli/acceptance/spec_helper_acceptance' +ENV['BEAKER_FACTER_VAULT_VERSION'] = '1.12.0' configure_beaker(modules: :metadata) Dir['./spec/support/acceptance/**/*.rb'].sort.each { |f| require f }