homebrew-cask/spec/cask/system_command_spec.rb

59 lines
1.4 KiB
Ruby

require 'spec_helper'
describe Hbc::SystemCommand do
describe "when the exit code is 0" do
let(:command) { '/usr/bin/true' }
it "says the command was successful" do
result = described_class.run(command)
expect(result.success?).to eq(true)
end
it "says the exit status is 0" do
result = described_class.run(command)
expect(result.exit_status).to eq(0)
end
end
describe "when the exit code is 1" do
let(:command) { '/usr/bin/false' }
describe "and the command must succeed" do
it "throws an error" do
expect {
described_class.run!(command)
}.to raise_error(Hbc::CaskCommandFailedError)
end
end
describe "and the command does not have to succeed" do
it "says the command failed" do
result = described_class.run(command)
expect(result.success?).to eq(false)
end
it "says the exit status is 1" do
result = described_class.run(command)
expect(result.exit_status).to eq(1)
end
end
end
describe "args" do
let(:command) { '/bin/ls' }
let(:path) { Pathname(Dir.mktmpdir) }
before do
FileUtils.touch(path.join('somefile'))
end
it "can be pathnames" do
result = described_class.run(command, args: [path])
expect(result.success?).to eq(true)
expect(result.stdout).to eq("somefile\n")
end
end
end