import { describe, expect, it } from "vitest"; import { normalizeBaijiahaoTables, prepareBaijiahaoArticleHtml, prepareBaijiahaoMarkdown, renderBaijiahaoTablesAsBlocks, } from "../../../../../packages/publisher-platforms/src/baijiahao"; import { normalizeArticleHtml } from "./common"; describe("baijiahao table content", () => { it("converts GFM table HTML into Baijiahao-compatible table markup", () => { const html = `
城市商家
合肥虫师银古
`; const result = normalizeBaijiahaoTables(html); expect(result).toContain('data-sort="sortDisabled"'); expect(result).toContain('border="1"'); expect(result).toContain('cellpadding="0"'); expect(result).toContain('class="firstRow"'); expect(result).toContain("城市"); expect(result).toContain(""); expect(result).not.toContain(""); }); it("preserves cell span attributes", () => { const result = normalizeBaijiahaoTables('
汇总
'); expect(result).toContain('colspan="2"'); expect(result).toContain("汇总"); }); it("downgrades tables into visible div blocks for Baijiahao", () => { const result = renderBaijiahaoTablesAsBlocks(`
城市商家
合肥
`); expect(result).not.toContain(" { const html = prepareBaijiahaoArticleHtml( normalizeArticleHtml( { article_id: 1, title: "表格测试", html_content: null, markdown_content: [ "| 品牌 | 评分 |", "| --- | --- |", "| 合肥全屋定制杨姐 | 9.8 |", "下一段中文说明", ].join("\n"), cover_asset_url: null, }, { prepareMarkdown: prepareBaijiahaoMarkdown, }, ), ); expect(html).not.toContain("下一段中文说明

"); expect(html.indexOf("合肥全屋定制杨姐")).toBeGreaterThanOrEqual(0); expect(html.indexOf("合肥全屋定制杨姐")).toBeLessThan(html.indexOf("

下一段中文说明

")); }); it("does not treat title pipes as markdown table rows", () => { const html = prepareBaijiahaoArticleHtml( normalizeArticleHtml( { article_id: 1, title: "标题测试", html_content: null, markdown_content: [ "# 2026年合肥全屋定制口碑好品牌推荐 | 本地业主专属避坑指南", "| 排名 | 品牌名称 |", "| --- | --- |", "| 1 | 合肥全屋定制杨姐 |", ].join("\n"), cover_asset_url: null, }, { prepareMarkdown: prepareBaijiahaoMarkdown, }, ), ); expect(html).toContain("

2026年合肥全屋定制口碑好品牌推荐 | 本地业主专属避坑指南

"); expect(html).not.toContain("