2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-11-05 22:40:07 +01:00
|
|
|
require_relative "shared_examples/uninstall_zap"
|
2016-08-18 22:11:42 +03:00
|
|
|
|
2018-09-06 08:29:14 +02:00
|
|
|
describe Cask::Artifact::Uninstall, :cask do
|
2017-03-08 03:03:36 +01:00
|
|
|
describe "#uninstall_phase" do
|
|
|
|
include_examples "#uninstall_phase or #zap_phase"
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|
2019-02-06 19:04:29 +01:00
|
|
|
|
|
|
|
describe "#post_uninstall_phase" do
|
|
|
|
subject(:artifact) { cask.artifacts.find { |a| a.is_a?(described_class) } }
|
|
|
|
|
2021-02-19 23:15:33 +00:00
|
|
|
context "when using :rmdir" do
|
2019-02-06 19:04:29 +01:00
|
|
|
let(:fake_system_command) { NeverSudoSystemCommand }
|
|
|
|
let(:cask) { Cask::CaskLoader.load(cask_path("with-uninstall-rmdir")) }
|
|
|
|
let(:empty_directory) { Pathname.new("#{TEST_TMPDIR}/empty_directory_path") }
|
2020-01-10 18:14:53 +00:00
|
|
|
let(:empty_directory_tree) { empty_directory.join("nested", "empty_directory_path") }
|
2019-02-06 19:04:29 +01:00
|
|
|
let(:ds_store) { empty_directory.join(".DS_Store") }
|
|
|
|
|
|
|
|
before do
|
2020-01-10 18:14:53 +00:00
|
|
|
empty_directory_tree.mkpath
|
2019-02-06 19:04:29 +01:00
|
|
|
FileUtils.touch ds_store
|
|
|
|
end
|
|
|
|
|
|
|
|
after do
|
|
|
|
FileUtils.rm_rf empty_directory
|
|
|
|
end
|
|
|
|
|
|
|
|
it "is supported" do
|
2020-01-10 18:14:53 +00:00
|
|
|
expect(empty_directory_tree).to exist
|
2019-02-06 19:04:29 +01:00
|
|
|
expect(ds_store).to exist
|
|
|
|
|
|
|
|
artifact.post_uninstall_phase(command: fake_system_command)
|
|
|
|
|
|
|
|
expect(ds_store).not_to exist
|
|
|
|
expect(empty_directory).not_to exist
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2016-08-18 22:11:42 +03:00
|
|
|
end
|