import { describe, expect, it } from "vitest"; import { extractFirstTextBlock } from "./chat-message-content.js"; describe("shared/chat-message-content", () => { it("extracts the first text block from array content", () => { expect( extractFirstTextBlock({ content: [{ text: "hello" }, { text: "world" }], }), ).toBe("hello"); }); it("preserves empty-string text in the first block", () => { expect( extractFirstTextBlock({ content: [{ text: "" }, { text: "later" }], }), ).toBe(""); }); it("only considers the first content block even if later blocks have text", () => { expect( extractFirstTextBlock({ content: [null, { text: "later" }], }), ).toBeUndefined(); expect( extractFirstTextBlock({ content: [{ type: "image" }, { text: "later" }], }), ).toBeUndefined(); }); it("returns undefined for missing, empty, or non-text content", () => { expect(extractFirstTextBlock(null)).toBeUndefined(); expect(extractFirstTextBlock({ content: [] })).toBeUndefined(); expect(extractFirstTextBlock({ content: [{ type: "image" }] })).toBeUndefined(); expect(extractFirstTextBlock({ content: ["hello"] })).toBeUndefined(); expect(extractFirstTextBlock({ content: [{ text: 1 }, { text: "later" }] })).toBeUndefined(); }); });