From d096627b28a4c8238371c4e144afb03b4817efbc Mon Sep 17 00:00:00 2001 From: ramvignesh-b Date: Wed, 13 May 2026 00:54:15 +0530 Subject: [PATCH] test: failing tests for TokenManager multi-tenancy --- tests/core/TokenManager.test.ts | 40 +++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/tests/core/TokenManager.test.ts b/tests/core/TokenManager.test.ts index f2456d1..30b633a 100644 --- a/tests/core/TokenManager.test.ts +++ b/tests/core/TokenManager.test.ts @@ -1,15 +1,17 @@ -// @ts-nocheck import { describe, expect, it, mock } from "bun:test"; import { TokenManager } from "../../src/core/TokenManager"; describe("TokenManager", () => { + const tenantId = "test-tenant"; + it("should return token from redis if available", async () => { const redis = { get: mock(() => Promise.resolve("active-access-token")) }; - const manager = new TokenManager(redis, {}); + const manager = new TokenManager(redis as any, {} as any); - const token = await manager.getAccessToken("trakt"); + const token = await manager.getAccessToken(tenantId, "trakt"); expect(token).toBe("active-access-token"); + expect(redis.get).toHaveBeenCalledWith(`tenant:${tenantId}:provider:trakt:access_token`); }); it("should refresh token if access token is missing but refresh token exists", async () => { @@ -26,19 +28,26 @@ describe("TokenManager", () => { }), ), }; - const manager = new TokenManager(redis, provider); + const manager = new TokenManager(redis as any, provider as any); - const token = await manager.getAccessToken("trakt"); + const token = await manager.getAccessToken(tenantId, "trakt"); expect(token).toBe("newly-refreshed-access-token"); - expect(redis.set).toHaveBeenCalled(); + expect(redis.get).toHaveBeenCalledWith(`tenant:${tenantId}:provider:trakt:access_token`); + expect(redis.get).toHaveBeenCalledWith(`tenant:${tenantId}:provider:trakt:refresh_token`); + expect(redis.set).toHaveBeenCalledWith( + `tenant:${tenantId}:provider:trakt:access_token`, + "newly-refreshed-access-token", + "EX", + 3600, + ); }); it("should return null if no tokens are found", async () => { const redis = { get: mock(() => Promise.resolve(null)) }; - const manager = new TokenManager(redis, {}); + const manager = new TokenManager(redis as any, {} as any); - const token = await manager.getAccessToken("trakt"); + const token = await manager.getAccessToken(tenantId, "trakt"); expect(token).toBeNull(); }); @@ -57,19 +66,26 @@ describe("TokenManager", () => { }), ), }; - const manager = new TokenManager(redis, provider); + const manager = new TokenManager(redis as any, provider as any); - const token = await manager.refreshAccessToken("trakt"); + const token = await manager.refreshAccessToken(tenantId, "trakt"); expect(token).toBe("manually-refreshed-access-token"); + expect(redis.get).toHaveBeenCalledWith(`tenant:${tenantId}:provider:trakt:refresh_token`); expect(provider.refreshToken).toHaveBeenCalledWith("existing-refresh-token"); + expect(redis.set).toHaveBeenCalledWith( + `tenant:${tenantId}:provider:trakt:access_token`, + "manually-refreshed-access-token", + "EX", + 3600, + ); }); it("should return null in refreshAccessToken if no refresh token is found", async () => { const redis = { get: mock(() => Promise.resolve(null)) }; - const manager = new TokenManager(redis, {}); + const manager = new TokenManager(redis as any, {} as any); - const token = await manager.refreshAccessToken("trakt"); + const token = await manager.refreshAccessToken(tenantId, "trakt"); expect(token).toBeNull(); });