summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author0xAB <0xAB@protonmail.com>2017-08-29 07:25:28 +0100
committer0xAB <0xAB@protonmail.com>2017-08-29 07:25:28 +0100
commit6a69f0678ba59161346ad9f39a1fac15d727ac0c (patch)
tree3de4f0ae687912f46b58ac052defdc454dc8facb
parent44a6fa42b685db011f9f6eff35596f7aabea7580 (diff)
downloadpry-6a69f0678ba59161346ad9f39a1fac15d727ac0c.tar.gz
improve testcases for Pry::Prompt
-rw-r--r--spec/prompt_spec.rb43
1 files changed, 33 insertions, 10 deletions
diff --git a/spec/prompt_spec.rb b/spec/prompt_spec.rb
index 5309b9de..097adfec 100644
--- a/spec/prompt_spec.rb
+++ b/spec/prompt_spec.rb
@@ -5,8 +5,12 @@ RSpec.describe Pry::Prompt do
[proc{},proc{}]
end
+ let(:prompt_desc) do
+ "$my custom prompt description$"
+ end
+
before do
- described_class.add_prompt "prompt-name", "prompt description", prompt_value
+ described_class.add_prompt "prompt-name", prompt_desc, prompt_value
end
after do
@@ -14,28 +18,47 @@ RSpec.describe Pry::Prompt do
end
describe ".add_prompt" do
- specify "it adds a new prompt to Pry" do
- new_prompt = described_class['prompt-name']
+ specify "adds new Prompt" do
+ expect(described_class['prompt-name']).to be_instance_of(Pry::Prompt::PromptInfo)
+ end
+
+ specify "prompt appears in list-prompts" do
expect(pry_eval("list-prompts")).to include("prompt-name")
- expect(pry_eval("list-prompts")).to include("prompt description")
- expect(pry_eval("change-prompt prompt-name", "_pry_.prompt")).to eq(new_prompt)
+ expect(pry_eval("list-prompts")).to include(prompt_desc)
+ end
+
+ specify "prompt is changed to via change-prompt" do
+ expect(pry_eval("change-prompt prompt-name", "_pry_.prompt")).to eq(described_class['prompt-name'])
end
end
describe ".remove_prompt" do
- specify "it removes a prompt from Pry" do
+ specify "removes a prompt" do
+ described_class.remove_prompt 'prompt-name'
+ expect(described_class['prompt-name']).to eq(nil)
+ end
+
+ specify "prompt disappears from list-prompts" do
described_class.remove_prompt 'prompt-name'
expect(pry_eval("list-prompts")).to_not include("prompt-name")
- expect(pry_eval("list-prompts")).to_not include("prompt description")
end
end
describe ".alias_prompt" do
- specify "creates alias" do
+ before do
described_class.alias_prompt "prompt-name", "prompt-alias"
- expect(described_class.aliases_for("prompt-name").map(&:name)).to eq(["prompt-alias"])
+ end
+
+ specify "creates alias" do
+ expect(described_class.aliases_for("prompt-name")).to eq([described_class['prompt-alias']])
+ end
+
+ specify "alias appears in list-prompts" do
expect(pry_eval("list-prompts")).to include("Aliases: prompt-alias")
- expect(pry_eval("change-prompt prompt-alias", "_pry_.prompt")).to eq(described_class["prompt-name"])
+ end
+
+ specify "alias is changed to via change-prompt" do
+ expect(pry_eval("change-prompt prompt-alias", "_pry_.prompt")).to eq(described_class['prompt-name'])
end
end
end