From 1ab7c7e248de81ae2dde9eb368802c40fbe1790b Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 9 May 2026 13:06:19 +0100 Subject: [PATCH] test: tighten heartbeat typing assertions --- src/infra/heartbeat-runner.typing.test.ts | 28 +++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/infra/heartbeat-runner.typing.test.ts b/src/infra/heartbeat-runner.typing.test.ts index f8284b50578..d38e0cef861 100644 --- a/src/infra/heartbeat-runner.typing.test.ts +++ b/src/infra/heartbeat-runner.typing.test.ts @@ -64,6 +64,18 @@ async function seedTelegramSession(storePath: string, cfg: OpenClawConfig) { }); } +function expectTypingCall( + mock: ReturnType, + expected: { cfg: OpenClawConfig; to: string }, +) { + const params = mock.mock.calls[0]?.[0] as { cfg?: unknown; to?: unknown } | undefined; + if (!params) { + throw new Error("missing typing call"); + } + expect(params.cfg).toBe(expected.cfg); + expect(params.to).toBe(expected.to); +} + describe("runHeartbeatOnce heartbeat typing", () => { beforeEach(() => { setActivePluginRegistry(createTestRegistry()); @@ -87,18 +99,10 @@ describe("runHeartbeatOnce heartbeat typing", () => { }, }); - expect(sendTyping).toHaveBeenCalledWith( - expect.objectContaining({ - cfg, - to: TELEGRAM_TARGET, - }), - ); - expect(clearTyping).toHaveBeenCalledWith( - expect.objectContaining({ - cfg, - to: TELEGRAM_TARGET, - }), - ); + expect(sendTyping).toHaveBeenCalledOnce(); + expect(clearTyping).toHaveBeenCalledOnce(); + expectTypingCall(sendTyping, { cfg, to: TELEGRAM_TARGET }); + expectTypingCall(clearTyping, { cfg, to: TELEGRAM_TARGET }); expect(sendTyping.mock.invocationCallOrder[0]).toBeLessThan( replySpy.mock.invocationCallOrder[0] ?? Number.POSITIVE_INFINITY, );