diff --git a/ui/src/components/MarkdownEditor.test.tsx b/ui/src/components/MarkdownEditor.test.tsx index 4d46cc3aa37..aac6345cd86 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", @@ -260,13 +264,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" />,