brew/Library/Homebrew/test/cask/cmd/reinstall_spec.rb
2020-11-19 19:46:59 +01:00

47 lines
1.5 KiB
Ruby

# typed: false
# frozen_string_literal: true
require_relative "shared_examples/invalid_option"
describe Cask::Cmd::Reinstall, :cask do
it_behaves_like "a command that handles invalid options"
it "displays the reinstallation progress" do
caffeine = Cask::CaskLoader.load(cask_path("local-caffeine"))
Cask::Installer.new(caffeine).install
output = Regexp.new <<~EOS
==> Downloading file:.*caffeine.zip
Already downloaded: .*--caffeine.zip
==> Uninstalling Cask local-caffeine
==> Backing App 'Caffeine.app' up to '.*Caffeine.app'.
==> Removing App '.*Caffeine.app'.
==> Purging files for version 1.2.3 of Cask local-caffeine
==> Installing Cask local-caffeine
==> Moving App 'Caffeine.app' to '.*Caffeine.app'.
.*local-caffeine was successfully installed!
EOS
expect {
described_class.run("local-caffeine")
}.to output(output).to_stdout
end
it "allows reinstalling a Cask" do
Cask::Cmd::Install.run("local-transmission")
expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed
described_class.run("local-transmission")
expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed
end
it "allows reinstalling a non installed Cask" do
expect(Cask::CaskLoader.load(cask_path("local-transmission"))).not_to be_installed
described_class.run("local-transmission")
expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed
end
end