summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2020-07-07 19:26:07 -0700
committerGitHub <noreply@github.com>2020-07-07 19:26:07 -0700
commite68039c2b5bf26340554bb8f0923da5765c089cc (patch)
treea6c84d7f80d848918c24da21eed2da39400e1c85
parent06829558322f87473d108a5b3994f00711cb426d (diff)
parent0ee7d1ac043ca24e6ecef92073a78e4a1d1566c2 (diff)
downloadchef-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.rb62
-rw-r--r--spec/unit/resource/windows_package_spec.rb1
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