Skip to content

Commit 2c4d390

Browse files
committed
add test to confirm jwks is cached
1 parent fe55019 commit 2c4d390

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

spec/lib/workos/session_spec.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,52 @@
1515
end
1616

1717
describe 'initialize' do
18+
describe 'JWKS caching' do
19+
before do
20+
WorkOS::Cache.clear
21+
end
22+
23+
it 'caches and returns JWKS' do
24+
expect(Net::HTTP).to receive(:get).once
25+
session1 = WorkOS::Session.new(
26+
user_management: user_management,
27+
client_id: client_id,
28+
session_data: session_data,
29+
cookie_password: cookie_password,
30+
)
31+
32+
session2 = WorkOS::Session.new(
33+
user_management: user_management,
34+
client_id: client_id,
35+
session_data: session_data,
36+
cookie_password: cookie_password,
37+
)
38+
39+
expect(session1.jwks.map(&:export)).to eq(session2.jwks.map(&:export))
40+
end
41+
42+
it 'fetches JWKS from remote when cache is expired' do
43+
expect(Net::HTTP).to receive(:get).twice
44+
session1 = WorkOS::Session.new(
45+
user_management: user_management,
46+
client_id: client_id,
47+
session_data: session_data,
48+
cookie_password: cookie_password,
49+
)
50+
51+
allow(Time).to receive(:now).and_return(Time.now + 301)
52+
53+
session2 = WorkOS::Session.new(
54+
user_management: user_management,
55+
client_id: client_id,
56+
session_data: session_data,
57+
cookie_password: cookie_password,
58+
)
59+
60+
expect(session1.jwks.map(&:export)).to eq(session2.jwks.map(&:export))
61+
end
62+
end
63+
1864
it 'raises an error if cookie_password is nil or empty' do
1965
expect do
2066
WorkOS::Session.new(

0 commit comments

Comments
 (0)