aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/cask/cli/reinstall_spec.rb
blob: f2d1322ad5bab55942df86285a60196126de0514 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
require_relative "shared_examples/invalid_option"

describe Hbc::CLI::Reinstall, :cask do
  it_behaves_like "a command that handles invalid options"

  it "displays the reinstallation progress" do
    caffeine = Hbc::CaskLoader.load(cask_path("local-caffeine"))

    Hbc::Installer.new(caffeine).install

    output = Regexp.new <<~EOS
      ==> Downloading file:.*caffeine.zip
      Already downloaded: .*local-caffeine--1.2.3.zip
      ==> Verifying checksum for Cask local-caffeine
      ==> 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 {
      Hbc::CLI::Reinstall.run("local-caffeine")
    }.to output(output).to_stdout
  end

  it "allows reinstalling a Cask" do
    Hbc::CLI::Install.run("local-transmission")

    expect(Hbc::CaskLoader.load(cask_path("local-transmission"))).to be_installed

    Hbc::CLI::Reinstall.run("local-transmission")
    expect(Hbc::CaskLoader.load(cask_path("local-transmission"))).to be_installed
  end

  it "allows reinstalling a non installed Cask" do
    expect(Hbc::CaskLoader.load(cask_path("local-transmission"))).not_to be_installed

    Hbc::CLI::Reinstall.run("local-transmission")
    expect(Hbc::CaskLoader.load(cask_path("local-transmission"))).to be_installed
  end
end