summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/control_d_handler_spec.rb49
-rw-r--r--spec/pry_spec.rb53
2 files changed, 53 insertions, 49 deletions
diff --git a/spec/control_d_handler_spec.rb b/spec/control_d_handler_spec.rb
deleted file mode 100644
index 5e21ccbe..00000000
--- a/spec/control_d_handler_spec.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-RSpec.describe Pry::ControlDHandler do
- context "when given eval string is non-empty" do
- let(:eval_string) { 'hello' }
- let(:pry_instance) { Pry.new }
-
- it "clears input buffer" do
- described_class.default(eval_string, pry_instance)
- expect(eval_string).to be_empty
- end
- end
-
- context "when given eval string is empty & pry instance has one binding" do
- let(:eval_string) { '' }
- let(:pry_instance) { Pry.new.tap { |p| p.binding_stack = [binding] } }
-
- it "throws :breakout" do
- expect { described_class.default(eval_string, pry_instance) }
- .to throw_symbol(:breakout)
- end
-
- it "clears binding stack" do
- expect { described_class.default(eval_string, pry_instance) }
- .to throw_symbol
- expect(pry_instance.binding_stack).to be_empty
- end
- end
-
- context "when given eval string is empty & pry instance has 2+ bindings" do
- let(:eval_string) { '' }
- let(:binding1) { binding }
- let(:binding2) { binding }
- let(:binding_stack) { [binding1, binding2] }
-
- let(:pry_instance) do
- Pry.new.tap { |p| p.binding_stack = binding_stack }
- end
-
- it "saves a dup of the current binding stack in the 'cd' command" do
- described_class.default(eval_string, pry_instance)
- cd_state = pry_instance.commands['cd'].state
- expect(cd_state.old_stack).to eq([binding1, binding2])
- end
-
- it "pops the binding off the stack" do
- described_class.default(eval_string, pry_instance)
- expect(pry_instance.binding_stack).to eq([binding1])
- end
- end
-end
diff --git a/spec/pry_spec.rb b/spec/pry_spec.rb
index da73c275..93e55b9c 100644
--- a/spec/pry_spec.rb
+++ b/spec/pry_spec.rb
@@ -466,4 +466,57 @@ describe Pry do
expect(backtrace.any? { |l| l.include?(location) }).to equal true
end
end
+
+ describe "#eval" do
+ context "when line is nil" do
+ let(:line) { nil }
+
+ context "and when eval string is non-empty" do
+ before { subject.eval_string = 'hello' }
+
+ it "clears input buffer" do
+ subject.eval(line)
+ expect(subject.eval_string).to be_empty
+ end
+ end
+
+ context "and when eval string is empty & pry instance has one binding" do
+ before do
+ subject.eval_string = ''
+ subject.binding_stack = [binding]
+ end
+
+ it "catches :breakout" do
+ expect { subject.eval(line) }.not_to throw_symbol(:breakout)
+ end
+
+ it "clears binding stack" do
+ subject.eval(line)
+ expect(subject.binding_stack).to be_empty
+ end
+ end
+
+ context "and when given eval string is empty & pry instance has 2+ bindings" do
+ let(:binding1) { binding }
+ let(:binding2) { binding }
+ let(:binding_stack) { [binding1, binding2] }
+
+ before do
+ subject.eval_string = ''
+ subject.binding_stack = binding_stack
+ end
+
+ it "saves a dup of the current binding stack in the 'cd' command" do
+ subject.eval(line)
+ cd_state = subject.commands['cd'].state
+ expect(cd_state.old_stack).to eq([binding1, binding2])
+ end
+
+ it "pops the binding off the stack" do
+ subject.eval(line)
+ expect(subject.binding_stack).to eq([binding1])
+ end
+ end
+ end
+ end
end