Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

80 lines (67 sloc) 2.066 kb
require File.join(File.dirname(__FILE__), 'test_helper')
require 'boson/bin_runner'
BinRunner = Boson::BinRunner
describe "BinRunner" do
def aborts_with(regex)
BinRunner.expects(:abort).with {|e| e[regex] }
yield
end
unless ENV['FAST']
it "prints usage with no arguments" do
boson
stdout.should =~ /^boson/
end
it "prints usage with --help" do
%w{-h --help}.each do |option|
boson option
stdout.should =~ /^boson/
end
end
it 'prints version with --version' do
boson '--version'
stdout.chomp.should == "boson #{Boson::VERSION}"
end
it "executes string with --execute" do
%w{--execute -e}.each do |option|
boson "#{option} 'print 1 + 1'"
stdout.should == '2'
end
end
it "sets $DEBUG with --ruby-debug" do
%w{--ruby_debug -D}.each do |option|
boson "#{option} -e 'print $DEBUG'"
stdout.should == 'true'
end
end
it "sets Boson.debug with --debug" do
boson "--debug -e 'print Boson.debug'"
stdout.should == 'true'
end
it "prepends to $: with --load_path" do
%w{--load_path -I}.each do |option|
boson "#{option}=lib -e 'print $:[0]'"
stdout.should == 'lib'
end
end
it "prints error for unexpected error" do
boson %[-e 'raise "blarg"']
stderr.chomp.should == "Error: blarg"
end
it "prints error for too many arguments" do
with_command('dude') do
boson "dude 1 2 3"
stderr.should =~ /^'dude' was called incorrectly/
process.success?.should == false
end
end
it "prints error for invalid command" do
boson 'blarg'
stderr.chomp.should == %[Could not find command "blarg"]
process.success?.should == false
end
end
it ".parse_args only translates options before command" do
BinRunner.send(:parse_args, ['-d', 'com', '-v']).should == ["com", {debug: true}, ['-v']]
BinRunner.send(:parse_args, ['com', '-v']).should == ["com", {}, ['-v']]
end
end
Jump to Line
Something went wrong with that request. Please try again.