brew/Library/Homebrew/test/cask/cli_spec.rb

62 lines
2.2 KiB
Ruby
Raw Normal View History

2017-03-05 19:26:56 +01:00
describe Hbc::CLI, :cask do
2016-08-18 22:11:42 +03:00
it "lists the taps for Casks that show up in two taps" do
listing = Hbc::CLI.nice_listing(%w[
caskroom/cask/adium
caskroom/cask/google-chrome
passcod/homebrew-cask/adium
])
expect(listing).to eq(%w[
caskroom/cask/adium
google-chrome
passcod/cask/adium
])
end
context ".process" do
let(:noop_command) { double("CLI::Noop") }
before do
allow(Hbc).to receive(:init)
allow(described_class).to receive(:lookup_command).with("noop").and_return(noop_command)
allow(noop_command).to receive(:run)
end
around do |example|
shutup { example.run }
end
it "passes `--version` along to the subcommand" do
expect(described_class).to receive(:run_command).with(noop_command, "--version")
described_class.process(%w[noop --version])
end
it "prints help output when subcommand receives `--help` flag" do
expect(described_class).to receive(:run_command).with("help")
described_class.process(%w[noop --help])
expect(Hbc.help).to eq(true)
Hbc.help = false
end
it "respects the env variable when choosing what appdir to create" do
allow(ENV).to receive(:[])
allow(ENV).to receive(:[]).with("HOMEBREW_CASK_OPTS").and_return("--appdir=/custom/appdir")
expect(Hbc).to receive(:appdir=).with(Pathname.new("/custom/appdir"))
described_class.process("noop")
2016-08-18 22:11:42 +03:00
end
it "respects the env variable when choosing a non-default Caskroom location" do
allow(ENV).to receive(:[])
allow(ENV).to receive(:[]).with("HOMEBREW_CASK_OPTS").and_return("--caskroom=/custom/caskdir")
expect(Hbc).to receive(:caskroom=).with(Pathname.new("/custom/caskdir"))
described_class.process("noop")
2016-08-18 22:11:42 +03:00
end
it "exits with a status of 1 when something goes wrong" do
allow(described_class).to receive(:lookup_command).and_raise(Hbc::CaskError)
expect(described_class).to receive(:exit).with(1)
described_class.process("noop")
end
end
end