test: failing tests for ConfigManager tenant cleanup

This commit is contained in:
ramvignesh-b
2026-05-13 00:55:04 +05:30
parent f85b6301dd
commit 96e132c2fb
+30 -9
View File
@@ -1,18 +1,17 @@
// @ts-nocheck
import { describe, expect, it, mock } from "bun:test";
import { ConfigManager } from "../../src/core/ConfigManager";
describe("ConfigManager", () => {
it("should save and retrieve provider configuration", async () => {
const storage = {};
const storage: Record<string, string> = {};
const redis = {
set: mock((key, val) => {
set: mock((key: string, val: string) => {
storage[key] = val;
return Promise.resolve();
}),
get: mock((key) => Promise.resolve(storage[key] || null)),
get: mock((key: string) => Promise.resolve(storage[key] || null)),
};
const manager = new ConfigManager(redis);
const manager = new ConfigManager(redis as any);
const traktConfig = {
clientId: "trakt-client-id",
clientSecret: "trakt-client-secret",
@@ -24,14 +23,14 @@ describe("ConfigManager", () => {
await manager.setProviderConfig("trakt", traktConfig);
const retrieved = await manager.getProviderConfig("trakt");
expect(retrieved).toEqual(traktConfig);
expect(retrieved).toEqual(traktConfig as any);
expect(redis.set).toHaveBeenCalled();
});
it("should return all providers", async () => {
const redis = {
keys: mock(() => Promise.resolve(["config:trakt", "config:github"])),
get: mock((key) =>
get: mock((key: string) =>
Promise.resolve(
JSON.stringify({
clientId: `${key}-id`,
@@ -43,7 +42,7 @@ describe("ConfigManager", () => {
),
),
};
const manager = new ConfigManager(redis);
const manager = new ConfigManager(redis as any);
const providers = await manager.getAllProviders();
@@ -53,10 +52,32 @@ describe("ConfigManager", () => {
it("should return null for non-existent provider", async () => {
const redis = { get: mock(() => Promise.resolve(null)) };
const manager = new ConfigManager(redis);
const manager = new ConfigManager(redis as any);
const config = await manager.getProviderConfig("missing-provider");
expect(config).toBeNull();
});
it("should delete provider configuration and all tenant tokens", async () => {
const redis = {
del: mock(() => Promise.resolve()),
keys: mock(() =>
Promise.resolve([
"tenant:1:provider:trakt:access_token",
"tenant:2:provider:trakt:access_token",
]),
),
};
const manager = new ConfigManager(redis as any);
await manager.deleteProviderConfig("trakt");
expect(redis.del).toHaveBeenCalledWith("config:trakt");
expect(redis.keys).toHaveBeenCalledWith("tenant:*:provider:trakt:*");
expect(redis.del).toHaveBeenCalledWith(
"tenant:1:provider:trakt:access_token",
"tenant:2:provider:trakt:access_token",
);
});
});