test: failing tests for TokenManager multi-tenancy
This commit is contained in:
@@ -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();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user