Update CODEOWNERS
[puppet-modules/puppetlabs-apt.git] / spec / unit / puppet / type / apt_key_spec.rb
index 042804099bf906591e3056ed83d2eda5ab4b5141..a146a26e82353a17de24c9339e1c1fb27b0be838 100644 (file)
@@ -1,8 +1,10 @@
+# frozen_string_literal: true
+
 require 'spec_helper'
 require 'puppet'
 
 describe Puppet::Type.type(:apt_key) do
-  context 'only namevar 32bit key id' do
+  context 'with only namevar 32bit key id' do
     let(:resource) do
       Puppet::Type.type(:apt_key).new(
         id: 'EF8D349F',
@@ -22,11 +24,19 @@ describe Puppet::Type.type(:apt_key) do
     end
 
     it 'source is not set' do
-      expect(resource[:source]).to eq nil
+      expect(resource[:source]).to be_nil
     end
 
     it 'content is not set' do
-      expect(resource[:content]).to eq nil
+      expect(resource[:content]).to be_nil
+    end
+
+    it 'refresh is not set' do
+      expect(resource[:refresh]).to be_nil
+    end
+
+    it 'weak_ssl is not set' do
+      expect(resource[:weak_ssl]).to be_nil
     end
   end
 
@@ -103,6 +113,20 @@ describe Puppet::Type.type(:apt_key) do
     end
   end
 
+  context 'with source and weak_ssl' do
+    let(:resource) do
+      Puppet::Type.type(:apt_key).new(
+        id: 'EF8D349F',
+        source: 'https://apt.puppetlabs.com/pubkey.gpg',
+        weak_ssl: true,
+      )
+    end
+
+    it 'source is set to the URL' do
+      expect(resource[:source]).to eq 'https://apt.puppetlabs.com/pubkey.gpg'
+    end
+  end
+
   context 'with content' do
     let(:resource) do
       Puppet::Type.type(:apt_key).new(
@@ -129,7 +153,7 @@ describe Puppet::Type.type(:apt_key) do
     end
   end
 
-  context 'validation' do
+  context 'with validation' do
     it 'raises an error if content and source are set' do
       expect {
         Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
@@ -138,6 +162,15 @@ describe Puppet::Type.type(:apt_key) do
       }.to raise_error(%r{content and source are mutually exclusive})
     end
 
+    it 'raises an error if refresh => true and ensure => absent' do
+      expect {
+        Puppet::Type.type(:apt_key).new(id: 'EF8D349F',
+                                        source: 'http://apt.puppetlabs.com/pubkey.gpg',
+                                        ensure: :absent,
+                                        refresh: true)
+      }.to raise_error(%r{ensure => absent and refresh => true are mutually exclusive})
+    end
+
     it 'raises an error if a weird length key is used' do
       expect {
         Puppet::Type.type(:apt_key).new(id: 'FEF8D349F',