Skip to content

Commit defc7a6

Browse files
committed
improve multisession e2e
1 parent 169ddbd commit defc7a6

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

integration/tests/session-token-cache/multi-session.test.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,41 @@ testAgainstRunningApps({ withEnv: [appConfigs.envs.withSessionTasks] })(
173173
expect(tab2CacheInfo.currentSessionId).toBe(user2SessionInfo.sessionId);
174174
expect(tab2CacheInfo.cacheSize).toBeGreaterThan(0);
175175

176+
const tokenFetchRequests: Array<{ sessionId: string; url: string }> = [];
177+
await context.route('**/v1/client/sessions/*/tokens*', async route => {
178+
const url = route.request().url();
179+
const sessionIdMatch = url.match(/sessions\/([^/]+)\/tokens/);
180+
const sessionId = sessionIdMatch?.[1] || 'unknown';
181+
tokenFetchRequests.push({ sessionId, url });
182+
await route.continue();
183+
});
184+
185+
const tokenIsolation = await page2.evaluate(
186+
async ({ user1SessionId, user2SessionId }) => {
187+
const clerk = (window as any).Clerk;
188+
189+
await clerk.setActive({ session: user1SessionId });
190+
const user1Token = await clerk.session?.getToken();
191+
192+
await clerk.setActive({ session: user2SessionId });
193+
const user2Token = await clerk.session?.getToken();
194+
195+
return {
196+
tokensAreDifferent: user1Token !== user2Token,
197+
user1Token,
198+
user2Token,
199+
};
200+
},
201+
{ user1SessionId: user1SessionInfo.sessionId, user2SessionId: user2SessionInfo.sessionId },
202+
);
203+
204+
expect(tokenIsolation.tokensAreDifferent).toBe(true);
205+
expect(tokenIsolation.user1Token).toBeTruthy();
206+
expect(tokenIsolation.user2Token).toBeTruthy();
207+
expect(tokenFetchRequests.length).toBe(0);
208+
209+
await context.unroute('**/v1/client/sessions/*/tokens*');
210+
176211
// In multi-session apps, each tab can have a different active session
177212
const tab1FinalInfo = await page1.evaluate(() => {
178213
const clerk = (window as any).Clerk;

0 commit comments

Comments
 (0)