diff options
author | 0xAB <0xAB@protonmail.com> | 2017-08-29 07:25:28 +0100 |
---|---|---|
committer | 0xAB <0xAB@protonmail.com> | 2017-08-29 07:25:28 +0100 |
commit | 6a69f0678ba59161346ad9f39a1fac15d727ac0c (patch) | |
tree | 3de4f0ae687912f46b58ac052defdc454dc8facb | |
parent | 44a6fa42b685db011f9f6eff35596f7aabea7580 (diff) | |
download | pry-6a69f0678ba59161346ad9f39a1fac15d727ac0c.tar.gz |
improve testcases for Pry::Prompt
-rw-r--r-- | spec/prompt_spec.rb | 43 |
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 |