import { managedRelaySessionAtom, setManagedRelaySession } from "@t3tools/client-runtime/relay";import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import { appAtomRegistry } from "../rpc/atomRegistry";import { activateManagedRelayAuthentication, deactivateManagedRelayAuthentication, readManagedRelayClerkToken,} from "./managedAuth"; vi.mock("@clerk/react", () => ({ useAuth: vi.fn(),})); vi.mock("../lib/runtime", () => ({ runtime: { runPromiseExit: vi.fn(), },})); vi.mock("../connection/catalog", () => ({ environmentCatalog: { removeRelayEnvironments: {}, },})); afterEach(() => { deactivateManagedRelayAuthentication();}); describe("managed relay authentication", () => { it("clears all token access synchronously before account cleanup can fail", async () => { activateManagedRelayAuthentication("account-1", async () => "account-1-token"); expect(appAtomRegistry.get(managedRelaySessionAtom)?.accountId).toBe("account-1"); expect(await readManagedRelayClerkToken()).toBe("account-1-token"); deactivateManagedRelayAuthentication(); const cleanup = Promise.reject(new Error("Persistence removal failed.")).catch(() => undefined); expect(appAtomRegistry.get(managedRelaySessionAtom)).toBeNull(); expect(await readManagedRelayClerkToken()).toBeNull(); await cleanup; }); it("replaces an existing account session atomically", () => { setManagedRelaySession(appAtomRegistry, { accountId: "account-1", readClerkToken: async () => "account-1-token", }); activateManagedRelayAuthentication("account-2", async () => "account-2-token"); expect(appAtomRegistry.get(managedRelaySessionAtom)?.accountId).toBe("account-2"); });});
import { managedRelaySessionAtom, setManagedRelaySession } from "@t3tools/client-runtime/relay";
import { afterEach, describe, expect, it, vi } from "vite-plus/test";
import { appAtomRegistry } from "../rpc/atomRegistry";
import {
activateManagedRelayAuthentication,
deactivateManagedRelayAuthentication,
readManagedRelayClerkToken,
} from "./managedAuth";
vi.mock("@clerk/react", () => ({
useAuth: vi.fn(),
}));
vi.mock("../lib/runtime", () => ({
runtime: {
runPromiseExit: vi.fn(),
},
}));
vi.mock("../connection/catalog", () => ({
environmentCatalog: {
removeRelayEnvironments: {},
},
}));
afterEach(() => {
deactivateManagedRelayAuthentication();
});
describe("managed relay authentication", () => {
it("clears all token access synchronously before account cleanup can fail", async () => {
activateManagedRelayAuthentication("account-1", async () => "account-1-token");
expect(appAtomRegistry.get(managedRelaySessionAtom)?.accountId).toBe("account-1");
expect(await readManagedRelayClerkToken()).toBe("account-1-token");
deactivateManagedRelayAuthentication();
const cleanup = Promise.reject(new Error("Persistence removal failed.")).catch(() => undefined);
expect(appAtomRegistry.get(managedRelaySessionAtom)).toBeNull();
expect(await readManagedRelayClerkToken()).toBeNull();
await cleanup;
});
it("replaces an existing account session atomically", () => {
setManagedRelaySession(appAtomRegistry, {
accountId: "account-1",
readClerkToken: async () => "account-1-token",
});
activateManagedRelayAuthentication("account-2", async () => "account-2-token");
expect(appAtomRegistry.get(managedRelaySessionAtom)?.accountId).toBe("account-2");
});
});