Skip to content

Instantly share code, notes, and snippets.

@eidge
Created February 7, 2018 09:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save eidge/fa156f3efb8092f7f9416b83cfecfab3 to your computer and use it in GitHub Desktop.
Save eidge/fa156f3efb8092f7f9416b83cfecfab3 to your computer and use it in GitHub Desktop.
require 'spec_helper'
require 'tracker_flow/web/lib/auth/token'
describe TrackerFlow::Web::Auth::Token do
let(:user) do
evt = TrackerFlow::Events::UserCreated.new(
user_id: 1,
login: 'jon',
name: 'Jon Brown',
email: 'jon@brown.com',
stream: 'N/A'
)
user = TrackerFlow::Projections::User.new
user.apply(evt)
user
end
it 'generates a JWT' do
token = described_class.new(user: user)
expect(token.user_id).to eq 1
expect(token.generate).to be_a String
end
it 'parses a generated token' do
token = described_class.new(user: user)
parsed_token = described_class.parse(token.generate)
expect(parsed_token.user_id).to eq 1
end
it 'raises an error if token is invalid' do
expect { described_class.parse('invalid_token') }
.to raise_error(described_class::InvalidToken)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment