diff options
| author | mo khan <mokhan@users.noreply.github.com> | 2016-08-22 16:01:20 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-08-22 16:01:20 -0600 |
| commit | 6301ea64a649212838a449e7f11af91f72bd5263 (patch) | |
| tree | 48d7998c8eae49527dfeec1aed44af44caf0b8af | |
| parent | d5395b6194e1218ea3bddf471fb903261d439bac (diff) | |
| parent | a6144ecae8c8f3dc06f7ece331dd6f0aa2f0d106 (diff) | |
Merge pull request #5 from gavingmiller/master
Adds a few missing specs
| -rw-r--r-- | spec/lib/cli_spec.rb | 46 |
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 |
