feat: 增强 Markdown 代码块高亮和表格样式

This commit is contained in:
2026-06-03 17:23:43 +08:00
parent 714da2d633
commit a896091d27
11 changed files with 499 additions and 6 deletions

View File

@@ -0,0 +1,43 @@
import { screen } from "@testing-library/react";
import { describe, expect, test } from "bun:test";
import { createElement } from "react";
import { MarkdownTable } from "../../../../src/web/features/chat/parts/MarkdownTable";
import { renderWithProviders } from "../../test-utils";
describe("MarkdownTable 渲染表格", () => {
test("渲染原生 table 元素并添加 class", () => {
const children = createElement(
"thead",
null,
createElement("tr", null, createElement("th", null, "列1"), createElement("th", null, "列2")),
);
renderWithProviders(createElement(MarkdownTable, { children }));
const table = document.querySelector(".markdown-table");
expect(table).toBeTruthy();
expect(table!.tagName).toBe("TABLE");
expect(screen.getByText("列1")).toBeTruthy();
expect(screen.getByText("列2")).toBeTruthy();
});
test("正确传递 children 内容", () => {
const children = createElement(
"tbody",
null,
createElement("tr", null, createElement("td", null, "值1"), createElement("td", null, "值2")),
);
renderWithProviders(createElement(MarkdownTable, { children }));
expect(screen.getByText("值1")).toBeTruthy();
expect(screen.getByText("值2")).toBeTruthy();
});
test("只有传入 table 元素时才有 class", () => {
const { container } = renderWithProviders(createElement(MarkdownTable, { children: null }));
expect(container.querySelector(".markdown-table")).toBeTruthy();
});
});