1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00
pry--pry/spec/commands/shell_command_spec.rb
Danielle Sucher & Jason Laster f112a8d3e3 Add .cd - to return to prior working directory
[Finishes #1028]
2013-12-07 21:38:14 -05:00

56 lines
1.4 KiB
Ruby

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
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