X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Fdefines%2Fmark_spec.rb;h=6c673c41c36ae4fbd48470daba9a2f8acedfadef;hb=9f27ea9da08cd693153b1d69cc2edcd9e336a4b3;hp=f77603977fca115e36dc93c6b5f02285dce1d8ba;hpb=bb26c5722aeb078d305aa1f989c8a613f1c2d824;p=puppet-modules%2Fpuppetlabs-apt.git diff --git a/spec/defines/mark_spec.rb b/spec/defines/mark_spec.rb index f776039..6c673c4 100644 --- a/spec/defines/mark_spec.rb +++ b/spec/defines/mark_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require 'spec_helper' describe 'apt::mark', type: :define do @@ -7,10 +9,18 @@ describe 'apt::mark', type: :define do let :facts do { - os: { family: 'Debian', name: 'Debian', release: { major: '8', full: '8.0' } }, - lsbdistid: 'Debian', - lsbdistcodename: 'jessie', - osfamily: 'Debian', + os: { + family: 'Debian', + name: 'Debian', + release: { + major: '9', + full: '9.0', + }, + distro: { + codename: 'stretch', + id: 'Debian', + }, + }, } end @@ -22,7 +32,7 @@ describe 'apt::mark', type: :define do end it { - is_expected.to contain_exec('/usr/bin/apt-mark manual my_source') + is_expected.to contain_exec('apt-mark manual my_source') } end @@ -37,4 +47,50 @@ describe 'apt::mark', type: :define do is_expected.to raise_error(Puppet::PreformattedError, %r{expects a match for Enum\['auto', 'hold', 'manual', 'unhold'\], got 'foobar'}) end end + + [ + 'package', + 'package1', + 'package_name', + 'package-name', + ].each do |value| + describe 'with a valid resource title' do + let :title do + value + end + + let :params do + { + 'setting' => 'manual', + } + end + + it do + is_expected.to contain_exec("apt-mark manual #{title}") + end + end + end + + [ + '|| ls -la ||', + 'packakge with space', + 'package<>|', + '|| touch /tmp/foo.txt ||', + ].each do |value| + describe 'with an invalid resource title' do + let :title do + value + end + + let :params do + { + 'setting' => 'manual', + } + end + + it do + is_expected.to raise_error(Puppet::PreformattedError, %r{Invalid package name: #{title}}) + end + end + end end