1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00
pry--pry/spec/prompt_spec.rb

62 lines
2 KiB
Ruby
Raw Normal View History

require_relative 'helper'
describe "Prompts" do
describe "one-parameter prompt proc" do
it 'should get full config object' do
config = nil
redirect_pry_io(InputTester.new("exit-all")) do
Pry.start(self, :prompt => proc { |v| config = v })
end
2015-01-22 16:52:20 -05:00
config.is_a?(Pry::Config).should eq true
end
it 'should get full config object, when using a proc array' do
config1 = nil
redirect_pry_io(InputTester.new("exit-all")) do
Pry.start(self, :prompt => [proc { |v| config1 = v }, proc { |v| _config2 = v }])
end
2015-01-22 16:52:20 -05:00
config1.is_a?(Pry::Config).should eq true
end
it 'should receive correct data in the config object' do
config = nil
redirect_pry_io(InputTester.new("def hello", "exit-all")) do
Pry.start(self, :prompt => proc { |v| config = v })
end
2012-12-15 18:03:03 -05:00
config.eval_string.should =~ /def hello/
2015-01-22 16:52:20 -05:00
config.nesting_level.should eq 0
config.expr_number.should eq 1
config.cont.should eq true
config._pry_.is_a?(Pry).should eq true
expect(config.object).to eq self
end
end
describe "BACKWARDS COMPATIBILITY: 3 parameter prompt proc" do
it 'should get 3 parameters' do
o = n = p = nil
redirect_pry_io(InputTester.new("exit-all")) do
Pry.start(:test, :prompt => proc { |obj, nesting, _pry_|
o, n, p = obj, nesting, _pry_ })
end
2015-01-22 16:52:20 -05:00
o.should eq :test
n.should eq 0
p.is_a?(Pry).should eq true
end
it 'should get 3 parameters, when using proc array' do
o1 = n1 = p1 = nil
redirect_pry_io(InputTester.new("exit-all")) do
Pry.start(:test, :prompt => [proc { |obj, nesting, _pry_|
o1, n1, p1 = obj, nesting, _pry_ },
proc { |obj, nesting, _pry_|
2015-01-22 16:52:20 -05:00
_o2, _n2, _p2 = obj, nesting, _pry_ }])
end
2015-01-22 16:52:20 -05:00
o1.should eq :test
n1.should eq 0
p1.is_a?(Pry).should eq true
end
end
end