Add installer tests
This commit is contained in:
parent
fd62cdf636
commit
9af04fdf38
@ -235,6 +235,22 @@ describe Cask::Installer, :cask do
|
||||
|
||||
expect(latest_cask.download_sha_path).to be_a_file
|
||||
end
|
||||
|
||||
context "when loaded from the api and caskfile is required" do
|
||||
let(:path) { cask_path("local-caffeine") }
|
||||
let(:content) { File.read(path) }
|
||||
|
||||
it "installs cask" do
|
||||
expect(Homebrew::API::Cask).to receive(:fetch_source).once.and_return(content)
|
||||
|
||||
caffeine = Cask::CaskLoader.load(path)
|
||||
expect(caffeine).to receive(:loaded_from_api).once.and_return(true)
|
||||
expect(caffeine).to receive(:caskfile_only?).once.and_return(true)
|
||||
|
||||
described_class.new(caffeine).install
|
||||
expect(Cask::CaskLoader.load(path)).to be_installed
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "uninstall" do
|
||||
@ -269,6 +285,31 @@ describe Cask::Installer, :cask do
|
||||
expect(Cask::Caskroom.path.join("local-caffeine", mutated_version)).not_to be_a_directory
|
||||
expect(Cask::Caskroom.path.join("local-caffeine")).not_to be_a_directory
|
||||
end
|
||||
|
||||
context "when loaded from the api, caskfile is required and installed caskfile is invalid" do
|
||||
let(:path) { cask_path("local-caffeine") }
|
||||
let(:content) { File.read(path) }
|
||||
let(:invalid_path) { instance_double(Pathname) }
|
||||
|
||||
before do
|
||||
allow(invalid_path).to receive(:exist?).and_return(false)
|
||||
end
|
||||
|
||||
it "uninstalls cask" do
|
||||
expect(Homebrew::API::Cask).to receive(:fetch_source).twice.and_return(content)
|
||||
|
||||
caffeine = Cask::CaskLoader.load(path)
|
||||
expect(caffeine).to receive(:loaded_from_api).twice.and_return(true)
|
||||
expect(caffeine).to receive(:caskfile_only?).twice.and_return(true)
|
||||
expect(caffeine).to receive(:installed_caskfile).once.and_return(invalid_path)
|
||||
|
||||
described_class.new(caffeine).install
|
||||
expect(Cask::CaskLoader.load(path)).to be_installed
|
||||
|
||||
described_class.new(caffeine).uninstall
|
||||
expect(Cask::CaskLoader.load(path)).not_to be_installed
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe "uninstall_existing_cask" do
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user