mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 17:21:38 -05:00
30 lines
897 B
Ruby
30 lines
897 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe Subscription::EncodeJwtToken do
|
|
let(:payload) { { user_id: 123, email: 'test@example.com', action: 'create_user' } }
|
|
let(:secret_key) { 'secret_key' }
|
|
let(:service) { described_class.new(payload, secret_key) }
|
|
|
|
describe '#call' do
|
|
it 'encodes JWT with correct algorithm' do
|
|
expect(JWT).to receive(:encode)
|
|
.with(payload, secret_key, 'HS256')
|
|
.and_return('encoded.jwt.token')
|
|
|
|
result = service.call
|
|
expect(result).to eq('encoded.jwt.token')
|
|
end
|
|
|
|
it 'returns encoded JWT token' do
|
|
token = service.call
|
|
|
|
decoded_payload = JWT.decode(token, secret_key, 'HS256').first
|
|
|
|
expect(decoded_payload['user_id']).to eq(123)
|
|
expect(decoded_payload['email']).to eq('test@example.com')
|
|
expect(decoded_payload['action']).to eq('create_user')
|
|
end
|
|
end
|
|
end
|