forked from foodcoops/foodsoft
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #4 from wvengen/feature-pages_rss_token
add spec for tokenverifier
- Loading branch information
Showing
1 changed file
with
44 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
require_relative '../spec_helper' | ||
|
||
describe TokenVerifier do | ||
let (:prefix) { 'xyz' } | ||
let (:v) { TokenVerifier.new(prefix) } | ||
let (:msg) { v.generate } | ||
|
||
it 'validates' do | ||
expect{ v.verify(msg) }.to_not raise_error | ||
end | ||
|
||
it 'validates when recreated' do | ||
v2 = TokenVerifier.new(prefix) | ||
expect{ v2.verify(msg) }.to_not raise_error | ||
end | ||
|
||
it 'does not validate with a different prefix' do | ||
v2 = TokenVerifier.new('abc') | ||
expect { v2.verify(msg) }.to raise_error(TokenVerifier::InvalidPrefix) | ||
end | ||
|
||
it 'does not validate in a different foodcoop scope' do | ||
msg | ||
oldscope = FoodsoftConfig.scope | ||
begin | ||
FoodsoftConfig.scope = Faker::Lorem.words(1) | ||
v2 = TokenVerifier.new(prefix) | ||
expect{ v2.verify(msg) }.to raise_error(TokenVerifier::InvalidScope) | ||
ensure | ||
FoodsoftConfig.scope = oldscope | ||
end | ||
end | ||
|
||
it 'does not validate a random string' do | ||
expect{ v.verify(Faker::Lorem.characters(100)) }.to raise_error(ActiveSupport::MessageVerifier::InvalidSignature) | ||
end | ||
|
||
it 'returns the message' do | ||
data = [5, {'hi' => :there}, 'bye', []] | ||
msg = v.generate(data) | ||
expect(v.verify(msg)).to eq data | ||
end | ||
|
||
end |