From 3c562dcaa8f6e5a37981fa4dfd80f9a941e2fe71 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 12 May 2026 03:48:42 +0100 Subject: [PATCH] test: guard heartbeat prefix mock call --- .../heartbeat-runner.response-prefix-template.test.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/infra/heartbeat-runner.response-prefix-template.test.ts b/src/infra/heartbeat-runner.response-prefix-template.test.ts index 2416bf7ef7e..f155264ea97 100644 --- a/src/infra/heartbeat-runner.response-prefix-template.test.ts +++ b/src/infra/heartbeat-runner.response-prefix-template.test.ts @@ -51,6 +51,14 @@ describe("runHeartbeatOnce responsePrefix templates", () => { }); } + function requireFirstMockCall(mock: { mock: { calls: T[][] } }, label: string): T[] { + const call = mock.mock.calls.at(0); + if (!call) { + throw new Error(`expected ${label} call`); + } + return call; + } + async function runTemplatedHeartbeat(params: { responsePrefix: string; replyText: string }) { return withTempTelegramHeartbeatSandbox(async ({ tmpDir, storePath, replySpy }) => { const cfg = createTelegramHeartbeatConfig({ @@ -93,7 +101,7 @@ describe("runHeartbeatOnce responsePrefix templates", () => { }); expect(sendTelegram).toHaveBeenCalledTimes(1); - const [target, message, options] = sendTelegram.mock.calls[0] ?? []; + const [target, message, options] = requireFirstMockCall(sendTelegram, "telegram send"); expect(target).toBe(TELEGRAM_GROUP); expect(message).toBe("[openai-codex/gpt-5.4|think:high] Heartbeat alert"); expect(typeof options).toBe("object");