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

80 lines
2.7 KiB
Ruby
Raw Normal View History

2018-09-06 08:29:14 +02:00
describe Cask::Cmd, :cask do
2016-08-18 22:11:42 +03:00
it "lists the taps for Casks that show up in two taps" do
2017-06-14 13:23:16 +02:00
listing = described_class.nice_listing(%w[
2018-05-25 18:03:16 +02:00
homebrew/cask/adium
homebrew/cask/google-chrome
2017-06-14 13:23:16 +02:00
passcod/homebrew-cask/adium
])
2016-08-18 22:11:42 +03:00
expect(listing).to eq(%w[
google-chrome
2018-05-25 18:03:16 +02:00
homebrew/cask/adium
2016-08-18 22:11:42 +03:00
passcod/cask/adium
])
end
2017-06-14 13:23:16 +02:00
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)
2017-07-29 19:55:05 +02:00
cli.run
2017-06-14 13:23:16 +02:00
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
2018-09-06 08:29:14 +02:00
command = Cask::Cmd::Install.new("some-cask")
expect(command.binaries?).to be true
end
end
2017-05-21 02:32:46 +02:00
context "::run" do
2018-09-04 08:45:48 +01:00
let(:noop_command) { double("Cmd::Noop") }
2016-08-18 22:11:42 +03:00
before do
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
2018-09-04 08:45:48 +01:00
version_command = double("Cmd::Version")
allow(described_class).to receive(:lookup_command).with("--version").and_return(version_command)
expect(described_class).to receive(:run_command).with(version_command)
2017-05-21 02:32:46 +02:00
described_class.run("--version")
2016-08-18 22:11:42 +03:00
end
it "prints help output when subcommand receives `--help` flag" do
2017-06-14 13:23:16 +02:00
command = described_class.new("noop", "--help")
expect(described_class).to receive(:run_command).with("help", "noop")
2017-05-21 02:32:46 +02:00
command.run
expect(command.help?).to eq(true)
2016-08-18 22:11:42 +03:00
end
it "respects the env variable when choosing what appdir to create" do
2019-02-03 02:40:27 +01:00
ENV["HOMEBREW_CASK_OPTS"] = "--appdir=/custom/appdir"
2017-12-03 09:06:23 +01:00
2017-05-21 02:32:46 +02:00
described_class.run("noop")
2017-12-03 09:06:23 +01:00
2018-09-06 08:29:14 +02:00
expect(Cask::Config.global.appdir).to eq(Pathname.new("/custom/appdir"))
2016-08-18 22:11:42 +03:00
end
it "exits with a status of 1 when something goes wrong" do
2018-09-06 08:29:14 +02:00
allow(described_class).to receive(:lookup_command).and_raise(Cask::CaskError)
2017-06-14 13:23:16 +02:00
command = described_class.new("noop")
2017-05-21 02:32:46 +02:00
expect(command).to receive(:exit).with(1)
command.run
2016-08-18 22:11:42 +03:00
end
end
2017-03-16 09:00:57 +01:00
2018-05-17 19:13:37 +02:00
it "provides a help message for all visible commands" do
described_class.command_classes.select(&:visible).each do |command_class|
2017-03-16 09:00:57 +01:00
expect(command_class.help).to match(/\w+/), command_class.name
end
end
2016-08-18 22:11:42 +03:00
end