Add tests for uninstall_* and zap stanzas

This commit is contained in:
L. E. Segovia 2017-10-30 20:47:40 -03:00
parent 9b6b0bfed7
commit 917c138eeb
11 changed files with 236 additions and 0 deletions

View File

@ -91,6 +91,120 @@ describe Hbc::Audit, :cask do
end
end
describe "preflight stanza checks" do
let(:error_msg) { "only a single preflight stanza is allowed" }
context "when the cask has no preflight stanza" do
let(:cask_token) { "with-zap-rmdir" }
it { should_not warn_with(error_msg) }
end
context "when the cask has only one preflight stanza" do
let(:cask_token) { "with-preflight" }
it { should_not warn_with(error_msg) }
end
context "when the cask has multiple preflight stanzas" do
let(:cask_token) { "with-preflight-multi" }
it { is_expected.to warn_with(error_msg) }
end
end
describe "uninstall_postflight stanza checks" do
let(:error_msg) { "only a single postflight stanza is allowed" }
context "when the cask has no postflight stanza" do
let(:cask_token) { "with-zap-rmdir" }
it { should_not warn_with(error_msg) }
end
context "when the cask has only one postflight stanza" do
let(:cask_token) { "with-postflight" }
it { should_not warn_with(error_msg) }
end
context "when the cask has multiple postflight stanzas" do
let(:cask_token) { "with-postflight-multi" }
it { is_expected.to warn_with(error_msg) }
end
end
describe "uninstall stanza checks" do
let(:error_msg) { "only a single uninstall stanza is allowed" }
context "when the cask has no uninstall stanza" do
let(:cask_token) { "with-zap-rmdir" }
it { should_not warn_with(error_msg) }
end
context "when the cask has only one uninstall stanza" do
let(:cask_token) { "with-uninstall-rmdir" }
it { should_not warn_with(error_msg) }
end
context "when the cask has multiple uninstall stanzas" do
let(:cask_token) { "with-uninstall-multi" }
it { is_expected.to warn_with(error_msg) }
end
end
describe "uninstall_preflight stanza checks" do
let(:error_msg) { "only a single uninstall_preflight stanza is allowed" }
context "when the cask has no uninstall_preflight stanza" do
let(:cask_token) { "with-zap-rmdir" }
it { should_not warn_with(error_msg) }
end
context "when the cask has only one uninstall_preflight stanza" do
let(:cask_token) { "with-uninstall-preflight" }
it { should_not warn_with(error_msg) }
end
context "when the cask has multiple uninstall_preflight stanzas" do
let(:cask_token) { "with-uninstall-preflight-multi" }
it { is_expected.to warn_with(error_msg) }
end
end
describe "uninstall_postflight stanza checks" do
let(:error_msg) { "only a single uninstall_postflight stanza is allowed" }
context "when the cask has no uninstall_postflight stanza" do
let(:cask_token) { "with-zap-rmdir" }
it { should_not warn_with(error_msg) }
end
context "when the cask has only one uninstall_postflight stanza" do
let(:cask_token) { "with-uninstall-postflight" }
it { should_not warn_with(error_msg) }
end
context "when the cask has multiple uninstall_postflight stanzas" do
let(:cask_token) { "with-uninstall-postflight-multi" }
it { is_expected.to warn_with(error_msg) }
end
end
describe "zap stanza checks" do
let(:error_msg) { "only a single zap stanza is allowed" }
context "when the cask has no zap stanza" do
let(:cask_token) { "with-uninstall-rmdir" }
it { should_not warn_with(error_msg) }
end
context "when the cask has only one zap stanza" do
let(:cask_token) { "with-zap-rmdir" }
it { should_not warn_with(error_msg) }
end
context "when the cask has multiple zap stanzas" do
let(:cask_token) { "with-zap-multi" }
it { is_expected.to warn_with(error_msg) }
end
end
describe "version checks" do
let(:error_msg) { "you should use version :latest instead of version 'latest'" }

View File

@ -0,0 +1,13 @@
cask 'with-postflight-multi' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
postflight do end
postflight do end
end

View File

@ -0,0 +1,11 @@
cask 'with-postflight' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
postflight do end
end

View File

@ -0,0 +1,13 @@
cask 'with-preflight-multi' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
preflight do end
preflight do end
end

View File

@ -0,0 +1,11 @@
cask 'with-preflight' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
preflight do end
end

View File

@ -0,0 +1,13 @@
cask 'with-uninstall-multi' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
uninstall rmdir: "#{TEST_TMPDIR}/empty_directory_path"
uninstall delete: "#{TEST_TMPDIR}/empty_directory_path"
end

View File

@ -0,0 +1,13 @@
cask 'with-uninstall-postflight-multi' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
uninstall_postflight do end
uninstall_postflight do end
end

View File

@ -0,0 +1,11 @@
cask 'with-uninstall-postflight' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
uninstall_postflight do end
end

View File

@ -0,0 +1,13 @@
cask 'with-uninstall-preflight-multi' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
uninstall_preflight do end
uninstall_preflight do end
end

View File

@ -0,0 +1,11 @@
cask 'with-uninstall-preflight' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
uninstall_preflight do end
end

View File

@ -0,0 +1,13 @@
cask 'with-zap-multi' do
version '1.2.3'
sha256 '8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b'
url "file://#{TEST_FIXTURE_DIR}/cask/MyFancyPkg.zip"
homepage 'http://example.com/fancy-pkg'
pkg 'MyFancyPkg/Fancy.pkg'
zap rmdir: "#{TEST_TMPDIR}/empty_directory_path"
zap delete: "#{TEST_TMPDIR}/empty_directory_path"
end