diff --git a/src/agents/pi-embedded-runner/run/history-image-prune.test.ts b/src/agents/pi-embedded-runner/run/history-image-prune.test.ts index 820e0c482c9..e9442e786da 100644 --- a/src/agents/pi-embedded-runner/run/history-image-prune.test.ts +++ b/src/agents/pi-embedded-runner/run/history-image-prune.test.ts @@ -23,15 +23,23 @@ function expectPrunedImageMessage( messages: AgentMessage[], errorMessage: string, ): Array<{ type: string; text?: string; data?: string }> { - const pruned = pruneProcessedHistoryImages(messages); - expect(pruned).not.toBeNull(); - expect(pruned).not.toBe(messages); - const content = expectArrayMessageContent(pruned?.[0], errorMessage); + const pruned = expectPrunedMessages(messages); + const content = expectArrayMessageContent(pruned[0], errorMessage); expect(content).toHaveLength(2); expect(content[1]).toMatchObject({ type: "text", text: PRUNED_HISTORY_IMAGE_MARKER }); return content; } +function expectPrunedMessages(messages: AgentMessage[]): AgentMessage[] { + const pruned = pruneProcessedHistoryImages(messages); + expect(pruned).toEqual(expect.any(Array)); + if (!pruned) { + throw new Error("expected pruned history messages"); + } + expect(pruned).not.toBe(messages); + return pruned; +} + function expectImageMessagePreserved(messages: AgentMessage[], errorMessage: string) { const pruned = pruneProcessedHistoryImages(messages); @@ -98,10 +106,9 @@ describe("pruneProcessedHistoryImages", () => { ...oldEnoughTail(), ]; - const pruned = pruneProcessedHistoryImages(messages); + const pruned = expectPrunedMessages(messages); - expect(pruned).not.toBeNull(); - const content = expectArrayMessageContent(pruned?.[0], "expected user array content"); + const content = expectArrayMessageContent(pruned[0], "expected user array content"); expect(content[0]?.text).toBe( [ "old image", @@ -128,10 +135,9 @@ describe("pruneProcessedHistoryImages", () => { ...oldEnoughTail(), ]; - const pruned = pruneProcessedHistoryImages(messages); + const pruned = expectPrunedMessages(messages); - expect(pruned).not.toBeNull(); - const firstUser = pruned?.[0] as Extract | undefined; + const firstUser = pruned[0] as Extract | undefined; expect(firstUser?.content).toBe(`please remember ${PRUNED_HISTORY_MEDIA_REFERENCE_MARKER}`); const originalUser = messages[0] as Extract | undefined; expect(originalUser?.content).toBe( @@ -149,10 +155,9 @@ describe("pruneProcessedHistoryImages", () => { ...oldEnoughTail(), ]; - const pruned = pruneProcessedHistoryImages(messages); + const pruned = expectPrunedMessages(messages); - expect(pruned).not.toBeNull(); - const toolResult = pruned?.[0] as Extract | undefined; + const toolResult = pruned[0] as Extract | undefined; expect(toolResult?.content).toBe(`previous ${PRUNED_HISTORY_MEDIA_REFERENCE_MARKER} result`); const originalToolResult = messages[0] as | Extract @@ -284,13 +289,12 @@ describe("pruneProcessedHistoryImages", () => { assistantTurn(), ]; - const pruned = pruneProcessedHistoryImages(messages); - expect(pruned).not.toBeNull(); + const pruned = expectPrunedMessages(messages); - const oldContent = expectArrayMessageContent(pruned?.[0], "expected old user content"); + const oldContent = expectArrayMessageContent(pruned[0], "expected old user content"); expect(oldContent[1]).toMatchObject({ type: "text", text: PRUNED_HISTORY_IMAGE_MARKER }); - const recentContent = expectArrayMessageContent(pruned?.[6], "expected recent user content"); + const recentContent = expectArrayMessageContent(pruned[6], "expected recent user content"); expect(recentContent[1]).toMatchObject({ type: "image", data: "abc" }); const originalOldContent = expectArrayMessageContent(