mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-15 19:56:59 +08:00
83 lines
2.9 KiB
Ruby
83 lines
2.9 KiB
Ruby
describe Hbc::CLI, :cask do
|
|
it "lists the taps for Casks that show up in two taps" do
|
|
listing = described_class.nice_listing(%w[
|
|
homebrew/cask/adium
|
|
homebrew/cask/google-chrome
|
|
passcod/homebrew-cask/adium
|
|
])
|
|
|
|
expect(listing).to eq(%w[
|
|
google-chrome
|
|
homebrew/cask/adium
|
|
passcod/cask/adium
|
|
])
|
|
end
|
|
|
|
it "ignores the `--language` option, which is handled in `OS::Mac`" do
|
|
cli = described_class.new("--language=en")
|
|
expect(cli).to receive(:detect_command_and_arguments).with(no_args)
|
|
cli.run
|
|
end
|
|
|
|
context "when given no arguments" do
|
|
it "exits successfully" do
|
|
expect(subject).not_to receive(:exit).with(be_nonzero)
|
|
subject.run
|
|
end
|
|
end
|
|
|
|
context "when no option is specified" do
|
|
it "--binaries is true by default" do
|
|
command = Hbc::CLI::Install.new("some-cask")
|
|
expect(command.binaries?).to be true
|
|
end
|
|
end
|
|
|
|
context "::run" 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
|
|
|
|
it "passes `--version` along to the subcommand" do
|
|
version_command = double("CLI::Version")
|
|
allow(described_class).to receive(:lookup_command).with("--version").and_return(version_command)
|
|
expect(described_class).to receive(:run_command).with(version_command)
|
|
described_class.run("--version")
|
|
end
|
|
|
|
it "prints help output when subcommand receives `--help` flag" do
|
|
command = described_class.new("noop", "--help")
|
|
expect(described_class).to receive(:run_command).with("help", "noop")
|
|
command.run
|
|
expect(command.help?).to eq(true)
|
|
end
|
|
|
|
it "respects the env variable when choosing what appdir to create" do
|
|
allow(ENV).to receive(:[]).and_call_original
|
|
allow(ENV).to receive(:[]).with("HOMEBREW_CASK_OPTS").and_return("--appdir=/custom/appdir")
|
|
allow(Hbc::Config.global).to receive(:appdir).and_call_original
|
|
|
|
described_class.run("noop")
|
|
|
|
expect(Hbc::Config.global.appdir).to eq(Pathname.new("/custom/appdir"))
|
|
end
|
|
|
|
it "exits with a status of 1 when something goes wrong" do
|
|
allow(described_class).to receive(:lookup_command).and_raise(Hbc::CaskError)
|
|
command = described_class.new("noop")
|
|
expect(command).to receive(:exit).with(1)
|
|
command.run
|
|
end
|
|
end
|
|
|
|
it "provides a help message for all visible commands" do
|
|
described_class.command_classes.select(&:visible).each do |command_class|
|
|
expect(command_class.help).to match(/\w+/), command_class.name
|
|
end
|
|
end
|
|
end
|