diff --git a/web/src/engine/renderers.test.ts b/web/src/engine/renderers.test.ts index 6e45eb21..849cff49 100644 --- a/web/src/engine/renderers.test.ts +++ b/web/src/engine/renderers.test.ts @@ -7,6 +7,7 @@ import { parseInlineContent, latexToOmml, sanitizeMermaidCode, + cleanSvgForCanvas, } from './docxRenderer'; import { buildXlsxWorkbook, exportDocumentToXlsx } from './xlsxRenderer'; import { Packer, ImportedXmlComponent } from 'docx'; @@ -71,6 +72,15 @@ test('DOCX 渲染器 Mermaid 语法净化与容错测试 (sanitizeMermaidCode)', assert.ok(sanitized.includes('Display["4K医用级超低延迟监视器 (延时 < 35ms)"]')); }); +test('DOCX 渲染器 SVG 净化防 Canvas 污染测试 (cleanSvgForCanvas)', () => { + const dirtySvg = `
双CMOS分光棱镜
`; + const cleaned = cleanSvgForCanvas(dirtySvg); + + assert.ok(!cleaned.includes('@import'), '应彻底剥离 @import 外部网络字体'); + assert.ok(!cleaned.includes(',杜绝 Tainted Canvas'); + assert.ok(cleaned.includes('双CMOS分光棱镜'), '必须保留节点文本内容'); +}); + test('DOCX 渲染器全量编译测试 (buildDocxModel & exportDocumentToDocx)', async () => { const ast = markdownToBlockAST(SAMPLE_MD, { docId: 'doc_docx_test_001',