summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mokhan@users.noreply.github.com>2016-08-22 16:01:20 -0600
committerGitHub <noreply@github.com>2016-08-22 16:01:20 -0600
commit6301ea64a649212838a449e7f11af91f72bd5263 (patch)
tree48d7998c8eae49527dfeec1aed44af44caf0b8af
parentd5395b6194e1218ea3bddf471fb903261d439bac (diff)
parenta6144ecae8c8f3dc06f7ece331dd6f0aa2f0d106 (diff)
Merge pull request #5 from gavingmiller/master
Adds a few missing specs
-rw-r--r--spec/lib/cli_spec.rb46
1 files changed, 39 insertions, 7 deletions
diff --git a/spec/lib/cli_spec.rb b/spec/lib/cli_spec.rb
index 52f1a42..80d1ab8 100644
--- a/spec/lib/cli_spec.rb
+++ b/spec/lib/cli_spec.rb
@@ -6,22 +6,43 @@ module TFA
::ROTP::TOTP.new(secret).now
end
- let(:secret) { ::ROTP::Base32.random_base32 }
+ let(:dev_secret) { ::ROTP::Base32.random_base32 }
+ let(:prod_secret) { ::ROTP::Base32.random_base32 }
describe "#add" do
context "when a secret is added" do
it "adds the secret" do
- subject.add("development", secret)
- expect(subject.show("development")).to eql(secret)
+ subject.add("development", dev_secret)
+ expect(subject.show("development")).to eql(dev_secret)
end
end
context "when a full otpauth string is added" do
it "strips out the url for just the secret" do
- url = "otpauth://totp/email@email.com?secret=#{secret}&issuer="
+ url = "otpauth://totp/email@email.com?secret=#{dev_secret}&issuer="
subject.add("development", url)
- expect(subject.show("development")).to eql(secret)
+ expect(subject.show("development")).to eql(dev_secret)
+ end
+ end
+ end
+
+ describe "#show" do
+ context "when a single key is given" do
+ it "returns the secret" do
+ subject.add("development", dev_secret)
+ expect(subject.show("development")).to eql(dev_secret)
+ end
+ end
+
+ context "when no key is given" do
+ it "returns the secret for all keys" do
+ subject.add("development", dev_secret)
+ subject.add("production", prod_secret)
+
+ result = subject.show.to_s
+ expect(result).to include(dev_secret)
+ expect(result).to include(prod_secret)
end
end
end
@@ -29,8 +50,19 @@ module TFA
describe "#totp" do
context "when a single key is given" do
it "returns a time based one time password" do
- subject.add("development", secret)
- expect(subject.totp("development")).to eql(code_for(secret))
+ subject.add("development", dev_secret)
+ expect(subject.totp("development")).to eql(code_for(dev_secret))
+ end
+ end
+
+ context "when no key is given" do
+ it "returns a time based one time password for all keys" do
+ subject.add("development", dev_secret)
+ subject.add("production", prod_secret)
+
+ result = subject.totp.to_s
+ expect(result).to include(code_for(dev_secret))
+ expect(result).to include(code_for(prod_secret))
end
end
end