mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-04-25 19:28:23 +00:00
* Initial plan * fix(frontend): avoid invalid paragraph nesting in reasoning trigger Agent-Logs-Url: https://github.com/bytedance/deer-flow/sessions/4c9eb0c2-ff29-4629-a61c-4e33d736d918 Co-authored-by: WillemJiang <219644+WillemJiang@users.noreply.github.com> * test(frontend): strengthen reasoning trigger DOM nesting assertion Agent-Logs-Url: https://github.com/bytedance/deer-flow/sessions/4c9eb0c2-ff29-4629-a61c-4e33d736d918 Co-authored-by: WillemJiang <219644+WillemJiang@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: WillemJiang <219644+WillemJiang@users.noreply.github.com>
29 lines
805 B
TypeScript
29 lines
805 B
TypeScript
import { createElement } from "react";
|
|
import { renderToStaticMarkup } from "react-dom/server";
|
|
import { expect, test, vi } from "vitest";
|
|
|
|
vi.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);
|
|
});
|