Discord: add presence cache tests (#2266) (thanks @kentaro)
This commit is contained in:
@@ -8,6 +8,7 @@ Status: unreleased.
|
|||||||
### Changes
|
### Changes
|
||||||
- Gateway: warn on hook tokens via query params; document header auth preference. (#2200) Thanks @YuriNachos.
|
- Gateway: warn on hook tokens via query params; document header auth preference. (#2200) Thanks @YuriNachos.
|
||||||
- Doctor: warn on gateway exposure without auth. (#2016) Thanks @Alex-Alaniz.
|
- Doctor: warn on gateway exposure without auth. (#2016) Thanks @Alex-Alaniz.
|
||||||
|
- Discord: add configurable privileged gateway intents for presences/members. (#2266) Thanks @kentaro.
|
||||||
- Docs: add Vercel AI Gateway to providers sidebar. (#1901) Thanks @jerilynzheng.
|
- Docs: add Vercel AI Gateway to providers sidebar. (#1901) Thanks @jerilynzheng.
|
||||||
- Agents: expand cron tool description with full schema docs. (#1988) Thanks @tomascupr.
|
- Agents: expand cron tool description with full schema docs. (#1988) Thanks @tomascupr.
|
||||||
- Skills: add missing dependency metadata for GitHub, Notion, Slack, Discord. (#1995) Thanks @jackheuberger.
|
- Skills: add missing dependency metadata for GitHub, Notion, Slack, Discord. (#1995) Thanks @jackheuberger.
|
||||||
|
|||||||
39
src/discord/monitor/presence-cache.test.ts
Normal file
39
src/discord/monitor/presence-cache.test.ts
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
import { beforeEach, describe, expect, it } from "vitest";
|
||||||
|
import type { GatewayPresenceUpdate } from "discord-api-types/v10";
|
||||||
|
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);
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user