Spaces:
Sleeping
Sleeping
| import type { GatewayPresenceUpdate } from "discord-api-types/v10"; | |
| import { beforeEach, describe, expect, it } from "vitest"; | |
| import { clearPresences, getPresence, presenceCacheSize, setPresence } from "./presence-cache.js"; | |
| describe("presence-cache", () => { | |
| beforeEach(() => { | |
| clearPresences(); | |
| }); | |
| it("scopes presence entries by account", () => { | |
| const presenceA = { status: "online" } as GatewayPresenceUpdate; | |
| const presenceB = { status: "idle" } as GatewayPresenceUpdate; | |
| setPresence("account-a", "user-1", presenceA); | |
| setPresence("account-b", "user-1", presenceB); | |
| expect(getPresence("account-a", "user-1")).toBe(presenceA); | |
| expect(getPresence("account-b", "user-1")).toBe(presenceB); | |
| expect(getPresence("account-a", "user-2")).toBeUndefined(); | |
| }); | |
| it("clears presence per account", () => { | |
| const presence = { status: "dnd" } as GatewayPresenceUpdate; | |
| setPresence("account-a", "user-1", presence); | |
| setPresence("account-b", "user-2", presence); | |
| clearPresences("account-a"); | |
| expect(getPresence("account-a", "user-1")).toBeUndefined(); | |
| expect(getPresence("account-b", "user-2")).toBe(presence); | |
| expect(presenceCacheSize()).toBe(1); | |
| }); | |
| }); | |