diff --git a/src/agents/pi-embedded-subscribe.handlers.tools.media.test.ts b/src/agents/pi-embedded-subscribe.handlers.tools.media.test.ts index a5e410619ab..1dd4341edfc 100644 --- a/src/agents/pi-embedded-subscribe.handlers.tools.media.test.ts +++ b/src/agents/pi-embedded-subscribe.handlers.tools.media.test.ts @@ -293,7 +293,7 @@ describe("handleToolExecutionEnd media emission", () => { // onToolResult should NOT be called by the new media path (emitToolOutput handles it). // It may be called by emitToolOutput, but the new block should not fire. // Verify emitToolOutput was called instead. - expect(ctx.emitToolOutput).toHaveBeenCalled(); + expect(ctx.emitToolOutput).toHaveBeenCalledTimes(1); expect(ctx.state.pendingToolMediaUrls).toStrictEqual([]); }); @@ -379,7 +379,7 @@ describe("handleToolExecutionEnd media emission", () => { }, }); - expect(ctx.emitToolOutput).toHaveBeenCalled(); + expect(ctx.emitToolOutput).toHaveBeenCalledTimes(1); expect(ctx.state.pendingToolMediaUrls).toStrictEqual([]); expect(ctx.state.pendingToolAudioAsVoice).toBe(false); }); @@ -452,14 +452,14 @@ describe("handleToolExecutionEnd media emission", () => { it("does not queue structured media already emitted in plain verbose output", async () => { const ctx = await handleVerboseGeneratedImage("plain"); - expect(ctx.emitToolOutput).toHaveBeenCalled(); + expect(ctx.emitToolOutput).toHaveBeenCalledTimes(1); expect(ctx.state.pendingToolMediaUrls).toStrictEqual([]); }); it("queues structured media once for markdown verbose output", async () => { const ctx = await handleVerboseGeneratedImage("markdown"); - expect(ctx.emitToolOutput).toHaveBeenCalled(); + expect(ctx.emitToolOutput).toHaveBeenCalledTimes(1); expect(ctx.state.pendingToolMediaUrls).toEqual(["/tmp/generated.png"]); });