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|正在处理|正在分析|已完成/);
});