Add spec tests for apt-mark maint-move_apt_mark_to_provider
authorCraig Gumbley <craiggumbley@gmail.com>
Fri, 12 Aug 2022 09:41:23 +0000 (09:41 +0000)
committerCraig Gumbley <craiggumbley@gmail.com>
Fri, 12 Aug 2022 11:07:43 +0000 (11:07 +0000)
This commit adds additional spec tests for mark.pp.

The tests validate the new resource name requirements
introduced in the previous commit.

spec/defines/mark_spec.rb

index b451bedd30673e20813b4519a91619a49e40c174..6c673c41c36ae4fbd48470daba9a2f8acedfadef 100644 (file)
@@ -32,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
 
@@ -47,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