Skip to content

Commit

Permalink
add test to confirm jwks is cached
Browse files Browse the repository at this point in the history
  • Loading branch information
nicknisi committed Jan 13, 2025
1 parent fe55019 commit 2c4d390
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions spec/lib/workos/session_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,52 @@
end

describe 'initialize' do
describe 'JWKS caching' do
before do
WorkOS::Cache.clear
end

it 'caches and returns JWKS' do
expect(Net::HTTP).to receive(:get).once
session1 = WorkOS::Session.new(
user_management: user_management,
client_id: client_id,
session_data: session_data,
cookie_password: cookie_password,
)

session2 = WorkOS::Session.new(
user_management: user_management,
client_id: client_id,
session_data: session_data,
cookie_password: cookie_password,
)

expect(session1.jwks.map(&:export)).to eq(session2.jwks.map(&:export))
end

it 'fetches JWKS from remote when cache is expired' do
expect(Net::HTTP).to receive(:get).twice
session1 = WorkOS::Session.new(
user_management: user_management,
client_id: client_id,
session_data: session_data,
cookie_password: cookie_password,
)

allow(Time).to receive(:now).and_return(Time.now + 301)

session2 = WorkOS::Session.new(
user_management: user_management,
client_id: client_id,
session_data: session_data,
cookie_password: cookie_password,
)

expect(session1.jwks.map(&:export)).to eq(session2.jwks.map(&:export))
end
end

it 'raises an error if cookie_password is nil or empty' do
expect do
WorkOS::Session.new(
Expand Down

0 comments on commit 2c4d390

Please sign in to comment.