From 6f34728caa93cbd9e1fe1d3127dbde968a9a26f5 Mon Sep 17 00:00:00 2001 From: Dotta Date: Fri, 24 Apr 2026 07:40:57 -0500 Subject: [PATCH] Broaden rich editor HTML tag regression --- ui/src/components/MarkdownEditor.test.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ui/src/components/MarkdownEditor.test.tsx b/ui/src/components/MarkdownEditor.test.tsx index c0d6c199ca4..4cc69444bfa 100644 --- a/ui/src/components/MarkdownEditor.test.tsx +++ b/ui/src/components/MarkdownEditor.test.tsx @@ -22,6 +22,10 @@ const mdxEditorMockState = vi.hoisted(() => ({ suppressHtmlProcessingValues: [] as boolean[], })); +function containsHtmlLikeTag(markdown: string) { + return /<\/?[A-Za-z][A-Za-z0-9:-]*(?:\s[^>]*)?\/?>/.test(markdown); +} + vi.mock("@mdxeditor/editor", async () => { const React = await import("react"); @@ -63,7 +67,7 @@ vi.mock("@mdxeditor/editor", async () => { }), []); React.useEffect(() => { - if (!suppressHtmlProcessing && (markdown.includes(""))) { + if (!suppressHtmlProcessing && containsHtmlLikeTag(markdown)) { setContent(""); onError?.({ error: "Error parsing markdown: HTML-like formatting requires suppressHtmlProcessing", @@ -271,13 +275,13 @@ describe("MarkdownEditor", () => { }); }); - it("keeps LLM wrapper tags in the rich editor instead of falling back to raw source", async () => { + it("keeps arbitrary HTML-like tags in the rich editor instead of falling back to raw source", async () => { const root = createRoot(container); await act(async () => { root.render( \n## My take\n\nBenchmark notes\n"} + value={'
\n## My take\n\n

Benchmark notes

\n
'} onChange={() => {}} placeholder="Markdown body" />,