Files
openmaic/OpenMAIC/packages/@openmaic/importer/test/textSerializer.tabStop.test.ts
2026-08-16 14:58:47 +08:00

28 lines
1.2 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { describe, it, expect } from 'vitest';
import { renderTxBodyHtml } from './helpers';
/**
* 回归auto-fix.md 坑表):标题/列表行用「前导 \t + 自定义 a:tabLst」推到图标右侧。
*
* 现象:标题整体右移、与图标间距过大、被甩到 96px 默认网格列(窄框还触发换行);
* a2m 里裸 tab/tab-size 又不被 ProseMirror 保留 → 行塌回左边被图标盖住。
* 修复textSerializer 解析 a:tabLst 首个停靠位,把行首 \t 折进段落 margin-left
* 整块右移单行与首行缩进视觉等价a2m 也能忠实渲染),并把行首空白从 run 剥掉。
*/
describe('textSerializer · 行首 tab + tabLst 折叠成 margin-left', () => {
const html = renderTxBodyHtml(`
<a:p>
<a:pPr marL="0" indent="0"><a:tabLst><a:tab pos="914400"/></a:tabLst></a:pPr>
<a:r><a:rPr sz="1800"/><a:t>\t物资管理</a:t></a:r>
</a:p>`);
it('行首 \\t 折进 margin-lefttab pos=914400 EMU = 96px', () => {
expect(html).toContain('margin-left: 96px');
});
it('已折叠的行首 \\t 从正文剥掉:文本直接以「物」开头', () => {
expect(html).toMatch(/>物资管理</);
expect(html).not.toContain('\t物资管理');
});
});