diff --git a/src/acp/client.test.ts b/src/acp/client.test.ts index 7b266b606..78292b4e3 100644 --- a/src/acp/client.test.ts +++ b/src/acp/client.test.ts @@ -1,6 +1,7 @@ import type { RequestPermissionRequest } from "@agentclientprotocol/sdk"; import { describe, expect, it, vi } from "vitest"; import { resolvePermissionRequest } from "./client.js"; +import { extractAttachmentsFromPrompt, extractTextFromPrompt } from "./event-mapper.js"; function makePermissionRequest( overrides: Partial = {}, @@ -139,3 +140,32 @@ describe("resolvePermissionRequest", () => { expect(res).toEqual({ outcome: { outcome: "cancelled" } }); }); }); + +describe("acp event mapper", () => { + it("extracts text and resource blocks into prompt text", () => { + const text = extractTextFromPrompt([ + { type: "text", text: "Hello" }, + { type: "resource", resource: { text: "File contents" } }, + { type: "resource_link", uri: "https://example.com", title: "Spec" }, + { type: "image", data: "abc", mimeType: "image/png" }, + ]); + + expect(text).toBe("Hello\nFile contents\n[Resource link (Spec)] https://example.com"); + }); + + it("extracts image blocks into gateway attachments", () => { + const attachments = extractAttachmentsFromPrompt([ + { type: "image", data: "abc", mimeType: "image/png" }, + { type: "image", data: "", mimeType: "image/png" }, + { type: "text", text: "ignored" }, + ]); + + expect(attachments).toEqual([ + { + type: "image", + mimeType: "image/png", + content: "abc", + }, + ]); + }); +}); diff --git a/src/acp/event-mapper.test.ts b/src/acp/event-mapper.test.ts deleted file mode 100644 index 0b7682ef3..000000000 --- a/src/acp/event-mapper.test.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { describe, expect, it } from "vitest"; -import { extractAttachmentsFromPrompt, extractTextFromPrompt } from "./event-mapper.js"; - -describe("acp event mapper", () => { - it("extracts text and resource blocks into prompt text", () => { - const text = extractTextFromPrompt([ - { type: "text", text: "Hello" }, - { type: "resource", resource: { text: "File contents" } }, - { type: "resource_link", uri: "https://example.com", title: "Spec" }, - { type: "image", data: "abc", mimeType: "image/png" }, - ]); - - expect(text).toBe("Hello\nFile contents\n[Resource link (Spec)] https://example.com"); - }); - - it("extracts image blocks into gateway attachments", () => { - const attachments = extractAttachmentsFromPrompt([ - { type: "image", data: "abc", mimeType: "image/png" }, - { type: "image", data: "", mimeType: "image/png" }, - { type: "text", text: "ignored" }, - ]); - - expect(attachments).toEqual([ - { - type: "image", - mimeType: "image/png", - content: "abc", - }, - ]); - }); -});