2013-12-07 19:05:48 -05:00
|
|
|
require 'helper'
|
|
|
|
|
|
|
|
describe "Command::ShellCommand" do
|
|
|
|
describe 'cd' do
|
|
|
|
before do
|
|
|
|
@o = Object.new
|
|
|
|
|
|
|
|
@t = pry_tester(@o) do
|
|
|
|
def command_state
|
|
|
|
pry.command_state[Pry::Command::ShellCommand.match]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe ".cd" do
|
|
|
|
before do
|
|
|
|
Dir.stubs(:chdir)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "saves the current working directory" do
|
|
|
|
Dir.stubs(:pwd).returns("initial_path")
|
|
|
|
|
|
|
|
@t.eval ".cd new_path"
|
|
|
|
@t.command_state.old_pwd.should == "initial_path"
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "given a path" do
|
|
|
|
it "sends the path to File.expand_path" do
|
|
|
|
Dir.expects(:chdir).with(File.expand_path("new_path"))
|
|
|
|
@t.eval ".cd new_path"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-12-08 21:48:52 -05:00
|
|
|
describe "given an empty string" do
|
|
|
|
it "sends ~ to File.expand_path" do
|
|
|
|
Dir.expects(:chdir).with(File.expand_path("~"))
|
|
|
|
@t.eval ".cd "
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2013-12-07 19:05:48 -05:00
|
|
|
describe "given a dash" do
|
|
|
|
describe "given no prior directory" do
|
|
|
|
it "raises the correct error" do
|
|
|
|
lambda { @t.eval ".cd -" }.should.raise(StandardError).
|
|
|
|
message.should == "No prior directory available"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "given a prior directory" do
|
|
|
|
it "sends the user's last pry working directory to File.expand_path" do
|
|
|
|
Dir.stubs(:pwd).returns("initial_path")
|
|
|
|
|
|
|
|
Dir.expects(:chdir).with(File.expand_path("new_path"))
|
|
|
|
@t.eval ".cd new_path"
|
|
|
|
|
|
|
|
Dir.expects(:chdir).with(File.expand_path("initial_path"))
|
|
|
|
@t.eval ".cd -"
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|