fix(webui): handle undefined language in code blocks
When fenced code blocks have no language specifier, react-syntax-highlighter receives undefined for the language prop, causing a white screen crash. - CodeBlock.tsx: fallback to 'text' when language is undefined - MarkdownTextRenderer.tsx: defensive fallback at fence rendering site - Added test cases for both components Fixes #4116
This commit is contained in:
@@ -16,6 +16,17 @@ describe("MarkdownTextRenderer", () => {
|
||||
expect(container.querySelector("pre div")).toBeNull();
|
||||
});
|
||||
|
||||
it("renders bare fenced code blocks without crashing", () => {
|
||||
const { container } = render(
|
||||
<MarkdownTextRenderer highlightCode={false}>
|
||||
{"Some text\n\n```\ncode without language\n```"}
|
||||
</MarkdownTextRenderer>,
|
||||
);
|
||||
|
||||
expect(screen.getByText("code without language")).toBeInTheDocument();
|
||||
expect(container.querySelectorAll("pre")).toHaveLength(1);
|
||||
});
|
||||
|
||||
it("keeps streaming unfinished fenced code blocks to a single shell", () => {
|
||||
const { container } = render(
|
||||
<MarkdownTextRenderer highlightCode={false}>
|
||||
|
||||
Reference in New Issue
Block a user