import assert from "node:assert/strict"; import test from "node:test"; import React from "react"; import { renderToStaticMarkup } from "react-dom/server"; import { ChatMessageRow } from "../src/components/chat-message-row.tsx"; import { settledChatMessageViews, streamingChatMessageView } from "../src/lib/chat-message-view.ts"; test("settled and streaming smalltalk render text without thinking, activity or evidence", () => { const settled = settledChatMessageViews([{ role: "assistant", text: "你好", responseKind: "smalltalk", thinkingText: "must stay hidden" }])[0]!; const streaming = streamingChatMessageView([{ role: "user", text: "你好" }], true, "你好", undefined, undefined, undefined, [], "smalltalk")!; for (const message of [settled, streaming]) { const html = renderToStaticMarkup(); assert.match(html, /你好/); assert.doesNotMatch(html, /consultation-thinking-report|agent-activity|must stay hidden|已完成|技法|正在分析/); } }); test("classification wait does not invent a thinking step before any activity", () => { const message = streamingChatMessageView([{ role: "user", text: "你好" }], true, "", undefined, undefined, undefined, [])!; const html = renderToStaticMarkup(); assert.doesNotMatch(html, /consultation-thinking-report|正在处理|正在分析|已完成/); });