




























@@ -126,7 +126,7 @@ function callArg(
126126argIndex: number,
127127label: string,
128128) {
129-const call = mock.mock.calls.at(callIndex);
129+const call = mock.mock.calls[callIndex];
130130if (!call) {
131131throw new Error(`Expected mock call: ${label}`);
132132}
@@ -136,6 +136,15 @@ function callArg(
136136return call[argIndex];
137137}
138138139+function lastMockCall(mock: { mock: { calls: Array<Array<unknown>> } }, label: string) {
140+const calls = mock.mock.calls;
141+const call = calls[calls.length - 1];
142+if (!call) {
143+throw new Error(`Expected last mock call: ${label}`);
144+}
145+return call;
146+}
147+139148function expectHookContext(callIndex: number, fields: { config?: unknown; hasGetCron?: boolean }) {
140149const context = requireRecord(
141150callArg(runCronChangedMock, callIndex, 1, "cron_changed context"),
@@ -646,8 +655,8 @@ describe("buildGatewayCronService", () => {
646655// configured default "primary". The exact resolved sessionKey is
647656// delegated to resolveCronSessionKey (already covered by other tests);
648657// here we only assert the agent target is consistent across both sides.
649-const enqueueCall = enqueueSystemEventMock.mock.calls.at(-1);
650-const wakeCall = requestHeartbeatMock.mock.calls.at(-1);
658+const enqueueCall = lastMockCall(enqueueSystemEventMock, "enqueue system event");
659+const wakeCall = lastMockCall(requestHeartbeatMock, "request heartbeat");
651660const enqueueSessionKey = (enqueueCall?.[1] as { sessionKey?: string } | undefined)
652661?.sessionKey;
653662const wakeOpts = wakeCall?.[0] as { agentId?: string; sessionKey?: string } | undefined;
@@ -710,8 +719,8 @@ describe("buildGatewayCronService", () => {
710719sessionKey: "discord:channel:ops",
711720});
712721713-const enqueueCall = enqueueSystemEventMock.mock.calls.at(-1);
714-const wakeCall = requestHeartbeatMock.mock.calls.at(-1);
722+const enqueueCall = lastMockCall(enqueueSystemEventMock, "enqueue system event");
723+const wakeCall = lastMockCall(requestHeartbeatMock, "request heartbeat");
715724expect((enqueueCall?.[1] as { sessionKey?: string } | undefined)?.sessionKey).toBe(
716725"agent:primary:discord:channel:ops",
717726);
@@ -770,8 +779,8 @@ describe("buildGatewayCronService", () => {
770779sessionKey: "agent:ghost:discord:channel:ops",
771780});
772781773-const enqueueCall = enqueueSystemEventMock.mock.calls.at(-1);
774-const wakeCall = requestHeartbeatMock.mock.calls.at(-1);
782+const enqueueCall = lastMockCall(enqueueSystemEventMock, "enqueue system event");
783+const wakeCall = lastMockCall(requestHeartbeatMock, "request heartbeat");
775784expect((enqueueCall?.[1] as { sessionKey?: string } | undefined)?.sessionKey).toBe(
776785"agent:primary:main",
777786);
@@ -813,8 +822,8 @@ describe("buildGatewayCronService", () => {
813822}),
814823).toEqual({ ok: true });
815824816-const enqueueCall = enqueueSystemEventMock.mock.calls.at(-1);
817-const wakeCall = requestHeartbeatMock.mock.calls.at(-1);
825+const enqueueCall = lastMockCall(enqueueSystemEventMock, "enqueue system event");
826+const wakeCall = lastMockCall(requestHeartbeatMock, "request heartbeat");
818827expect(enqueueCall?.[0]).toBe("hello");
819828expect((enqueueCall?.[1] as { sessionKey?: string } | undefined)?.sessionKey).toMatch(
820829/^agent:ops:/,
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。