diff options
author | Tim Smith <tsmith@chef.io> | 2020-07-07 19:26:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-07 19:26:07 -0700 |
commit | e68039c2b5bf26340554bb8f0923da5765c089cc (patch) | |
tree | a6c84d7f80d848918c24da21eed2da39400e1c85 | |
parent | 06829558322f87473d108a5b3994f00711cb426d (diff) | |
parent | 0ee7d1ac043ca24e6ecef92073a78e4a1d1566c2 (diff) | |
download | chef-e68039c2b5bf26340554bb8f0923da5765c089cc.tar.gz |
Merge pull request #10129 from chef/fix-some-windows-package-tests
Fix some windows package tests
-rw-r--r-- | spec/unit/provider/package/windows_spec.rb | 62 | ||||
-rw-r--r-- | spec/unit/resource/windows_package_spec.rb | 1 |
2 files changed, 18 insertions, 45 deletions
diff --git a/spec/unit/provider/package/windows_spec.rb b/spec/unit/provider/package/windows_spec.rb index c327e4217b..b9a32ffd66 100644 --- a/spec/unit/provider/package/windows_spec.rb +++ b/spec/unit/provider/package/windows_spec.rb @@ -42,7 +42,7 @@ describe Chef::Provider::Package::Windows, :windows_only do let(:cache_path) { 'c:\\cache\\' } before(:each) do - allow(::File).to receive(:exist?).with(provider.new_resource.source).and_return(true) + allow(::File).to receive(:exist?).with(new_resource.source).and_return(true) end describe "load_current_resource" do @@ -66,7 +66,7 @@ describe Chef::Provider::Package::Windows, :windows_only do it "sets the version to be installed" do provider.load_current_resource - expect(provider.new_resource.version).to eql("2.0") + expect(new_resource.version).to eql("2.0") end end @@ -233,9 +233,9 @@ describe Chef::Provider::Package::Windows, :windows_only do end end - it "returns @installer_type if it is set" do - provider.new_resource.installer_type(:downeaster) - expect(provider.installer_type).to eql(:downeaster) + it "returns the resource's installer_type if it is set" do + new_resource.installer_type(:nsis) + expect(provider.installer_type).to eql(:nsis) end it "sets installer_type to inno if the source contains inno" do @@ -275,7 +275,7 @@ describe Chef::Provider::Package::Windows, :windows_only do it "raises an error" do allow(::Kernel).to receive(:open).and_yield(StringIO.new("")) - provider.new_resource.installer_type(nil) + new_resource.installer_type(nil) expect { provider.installer_type }.to raise_error(Chef::Exceptions::CannotDetermineWindowsInstallerType) end end @@ -400,7 +400,7 @@ describe Chef::Provider::Package::Windows, :windows_only do let(:resource_source) { "C:/a_missing_file.exe" } let(:installer_type) { nil } before do - allow(::File).to receive(:exist?).with(provider.new_resource.source).and_return(false) + allow(::File).to receive(:exist?).with(new_resource.source).and_return(false) provider.load_current_resource end @@ -414,51 +414,23 @@ describe Chef::Provider::Package::Windows, :windows_only do Chef::Config[:why_run] = false end end - end - shared_context "valid checksum" do - context "checksum is valid" do - before do - allow(provider).to receive(:checksum).and_return("jiie00u3bbs92vsbhvgvklb2lasgh20ah") - end + it "does not raise an error with a valid checksum" do + expect(Chef::Digester).to receive(:checksum_for_file).with(new_resource.source).and_return("abcdef1234567890") + expect(provider).to receive(:install_package) - it "does not raise the checksum mismatch exception" do - expect { provider.send(:validate_content!) }.to_not raise_error - end - end - end + new_resource.checksum("abcdef1234567890") - shared_context "invalid checksum" do - context "checksum is invalid" do - before do - allow(provider).to receive(:checksum).and_return("kiie30u3bbs92vsbhvgvklb2lasgh20ah") - end - - it "raises the checksum mismatch exception" do - expect { provider.send(:validate_content!) }.to raise_error( - Chef::Exceptions::ChecksumMismatch - ) - end - end - end - - describe "validate_content!" do - before(:each) do - new_resource.checksum("jiie00u3bbs92vsbhvgvklb2lasgh20ah") + provider.run_action(:install) end - context "checksum is in lowercase" do - include_context "valid checksum" - include_context "invalid checksum" - end + it "raises an error with an invalid checksum" do + expect(Chef::Digester).to receive(:checksum_for_file).with(new_resource.source).and_return("abcdef1234567890") + expect(provider).not_to receive(:install_package) - context "checksum is in uppercase" do - before do - new_resource.checksum = new_resource.checksum.upcase - end + new_resource.checksum("ffffffffffffffff") - include_context "valid checksum" - include_context "invalid checksum" + expect { provider.run_action(:install) }.to raise_error(Chef::Exceptions::Package) end end end diff --git a/spec/unit/resource/windows_package_spec.rb b/spec/unit/resource/windows_package_spec.rb index be199f39b2..cbe3a06d87 100644 --- a/spec/unit/resource/windows_package_spec.rb +++ b/spec/unit/resource/windows_package_spec.rb @@ -58,6 +58,7 @@ describe Chef::Resource::WindowsPackage, "initialize" do expect { resource.installer_type :msi }.not_to raise_error expect { resource.installer_type :nsis }.not_to raise_error expect { resource.installer_type :wise }.not_to raise_error + expect { resource.installer_type :something_else_entirely }.to raise_error(Chef::Exceptions::ValidationFailed) expect { resource.installer_type "msi" }.to raise_error(Chef::Exceptions::ValidationFailed) end |