deer-flow/frontend/tests/unit/core/reasoning-trigger.test.ts
Copilot ef04174194
Fix invalid HTML nesting in reasoning trigger during complex task rendering (#2382)
* 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>
2026-04-21 09:41:28 +08:00

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);
});