





























@@ -944,6 +944,27 @@ vi.spyOn(routingModule, "resolveAgentRoute").mockImplementation(resolveAgentRout
944944const { DiscordMessageListener, DiscordReactionListener, registerDiscordListener } =
945945await import("./monitor/listeners.js");
946946947+type MockWithCalls = { mock: { calls: unknown[][] } };
948+949+function firstMockCall(mock: MockWithCalls, label: string): unknown[] {
950+const call = mock.mock.calls.at(0);
951+if (!call) {
952+throw new Error(`expected ${label} call`);
953+}
954+return call;
955+}
956+957+function firstMockArg(mock: MockWithCalls, label: string) {
958+return firstMockCall(mock, label)[0];
959+}
960+961+function requireRecord(value: unknown, label: string): Record<string, unknown> {
962+if (typeof value !== "object" || value === null) {
963+throw new Error(`expected ${label} to be an object`);
964+}
965+return value as Record<string, unknown>;
966+}
967+947968function makeReactionEvent(overrides?: {
948969guildId?: string;
949970channelId?: string;
@@ -1079,12 +1100,14 @@ describe("discord DM reaction handling", () => {
10791100await listener.handle(data, client);
1080110110811102expect(enqueueSystemEventSpy, testCase.name).toHaveBeenCalledOnce();
1082-const [text, opts] = enqueueSystemEventSpy.mock.calls[0];
1103+const [text, opts] = firstMockCall(enqueueSystemEventSpy, "enqueueSystemEvent");
10831104expect(text, testCase.name).toContain("Discord reaction added");
10841105expect(text, testCase.name).toContain("👍");
10851106expect(text, testCase.name).toContain("dm");
10861107expect(text, testCase.name).not.toContain("undefined");
1087-expect(opts.sessionKey, testCase.name).toBe("discord:acc-1:dm:user-1");
1108+expect(requireRecord(opts, "system event options").sessionKey, testCase.name).toBe(
1109+"discord:acc-1:dm:user-1",
1110+);
10881111}
10891112});
10901113@@ -1222,7 +1245,7 @@ describe("discord DM reaction handling", () => {
1222124512231246expect(getReactionClientFetchChannelMock(client)).toHaveBeenCalled();
12241247expect(enqueueSystemEventSpy).toHaveBeenCalledOnce();
1225-const [text] = enqueueSystemEventSpy.mock.calls[0];
1248+const text = firstMockArg(enqueueSystemEventSpy, "enqueueSystemEvent");
12261249expect(text).toContain("Discord reaction added");
12271250});
12281251@@ -1237,12 +1260,9 @@ describe("discord DM reaction handling", () => {
12371260await listener.handle(data, client);
1238126112391262expect(resolveAgentRouteMock).toHaveBeenCalledOnce();
1240-const routeArgs = (resolveAgentRouteMock.mock.calls[0]?.[0] ?? {}) as {
1263+const routeArgs = firstMockArg(resolveAgentRouteMock, "resolveAgentRoute") as {
12411264peer?: unknown;
12421265};
1243-if (!routeArgs) {
1244-throw new Error("expected route arguments");
1245-}
12461266expect(routeArgs.peer).toEqual({ kind: "direct", id: "user-42" });
12471267});
12481268@@ -1257,12 +1277,9 @@ describe("discord DM reaction handling", () => {
12571277await listener.handle(data, client);
1258127812591279expect(resolveAgentRouteMock).toHaveBeenCalledOnce();
1260-const routeArgs = (resolveAgentRouteMock.mock.calls[0]?.[0] ?? {}) as {
1280+const routeArgs = firstMockArg(resolveAgentRouteMock, "resolveAgentRoute") as {
12611281peer?: unknown;
12621282};
1263-if (!routeArgs) {
1264-throw new Error("expected route arguments");
1265-}
12661283expect(routeArgs.peer).toEqual({ kind: "group", id: "channel-1" });
12671284});
12681285});
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。