import { describe, expect, it } from "vitest"; import { sanitizeTitle, stripUploadedDocuments } from "../src/utils/text.js"; describe("stripUploadedDocuments", () => { it("removes the document instruction block appended by the frontend", () => { const message = "根据上传文档生成旅游详情长图\n\n【用户上传了以下文档(请先用 read_document_text 逐个读取原文;如果是旅游行程文档,可再用 read_document 提取线路摘要):\n行程.pdf:https://oss/x.pdf】"; expect(stripUploadedDocuments(message)).toBe("根据上传文档生成旅游详情长图"); }); it("removes older block variants and the text after them", () => { const message = "【用户上传了以下行程文档(请先用 read_document 逐个读取,再依据文档内容处理):\nhttps://oss/x.docx】\n请阅读文档并整理线路摘要。"; expect(stripUploadedDocuments(message)).toBe("请阅读文档并整理线路摘要。"); }); it("keeps plain messages untouched", () => { expect(stripUploadedDocuments("生成三张产品图")).toBe("生成三张产品图"); }); }); describe("sanitizeTitle", () => { it("cleans and truncates dirty titles", () => { expect(sanitizeTitle("生成一张旅游海报\n\n【用户上传了以下文档(请先用 read_document_text 逐个读取原文")).toBe("生成一张旅游海报"); expect(sanitizeTitle("【用户上传了以下文档(请先用 read_document_text 逐个")).toBe("新对话"); expect(sanitizeTitle(undefined)).toBe("新对话"); expect(sanitizeTitle("内容", "新对话", 2)).toBe("内容"); }); });