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:
@@ -48,6 +48,22 @@ describe("CodeBlock", () => {
|
||||
expect(screen.getByTestId("plain-code-fallback")).toHaveClass("text-foreground/90");
|
||||
});
|
||||
|
||||
it("falls back to 'text' language when language is undefined", async () => {
|
||||
render(
|
||||
<ThemeProvider theme="dark">
|
||||
<CodeBlock language={undefined} code="const value = 1;" />
|
||||
</ThemeProvider>,
|
||||
);
|
||||
|
||||
await act(async () => {
|
||||
await Promise.resolve();
|
||||
await Promise.resolve();
|
||||
});
|
||||
|
||||
expect(screen.getByTestId("highlighted-code")).toBeInTheDocument();
|
||||
expect(screen.getByText("const value = 1;")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("reads theme from context without creating per-block observers", async () => {
|
||||
const originalMutationObserver = globalThis.MutationObserver;
|
||||
const observer = vi.fn();
|
||||
|
||||
Reference in New Issue
Block a user