deer-flow/frontend/tests/unit/core/reasoning-trigger.test.ts
Jiahan Chen 6fb22bb311
test(frontend): migrate unit tests to rstest (#3703)
* test(frontend): migrate unit tests to rstest

* docs: updates AGENTS.md

* test(frontend): fix rstest lint formatting
2026-06-22 16:12:49 +08:00

29 lines
811 B
TypeScript

import { expect, test, rs } from "@rstest/core";
import { createElement } from "react";
import { renderToStaticMarkup } from "react-dom/server";
rs.mock("streamdown", () => ({
Streamdown: ({ children }: { children: string }) =>
createElement("div", null, children),
}));
import {
Reasoning,
ReasoningContent,
ReasoningTrigger,
} from "@/components/ai-elements/reasoning";
test("ReasoningTrigger default message uses phrasing content", () => {
const html = renderToStaticMarkup(
createElement(
Reasoning,
{ isStreaming: false, defaultOpen: false },
createElement(ReasoningTrigger, null),
createElement(ReasoningContent, null, "test"),
),
);
expect(html).toContain("Thought for a few seconds");
expect(html).not.toMatch(/<button\b[^>]*>[\s\S]*?<p\b/i);
});