import { describe, it, expect, beforeAll } from 'vitest';
import { parseXml } from '../src/parser/XmlParser';
import { parseTableNode } from '../src/model/nodes/TableNode';
import { tableToElement } from '../src/serializer/tableSerializer';
import { minimalCtx } from './helpers';
const NS =
'xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" ' +
'xmlns:p="http://schemas.openxmlformats.org/presentationml/2006/main"';
/**
* 回归(auto-fix.md 坑表):表格 cell 的 必须清掉填充。
*
* 现象:教师表每个 cell 显式 ,但表格样式 firstRow/wholeTbl=accent1,
* 不处理 noFill 会把整张表错误染成橙色。
* 修复:tcPr 的 noFill 显式清掉继承自表格样式的填充色。
*
* 断言粒度:noFill 的 cell 在 DSL 里没有 fillColor;solidFill 的 cell 取到该色。
*/
describe('tableSerializer · cell noFill 清掉填充', () => {
const tblXml = `
A
B
`;
let cellNoFill: { fillColor?: string };
let cellSolid: { fillColor?: string };
beforeAll(() => {
const table = tableToElement(parseTableNode(parseXml(tblXml)), minimalCtx(), 0) as {
data: Array>;
};
[cellNoFill, cellSolid] = table.data[0];
});
it('noFill 的 cell 没有 fillColor', () => {
expect(cellNoFill.fillColor).toBeUndefined();
});
it('solidFill 的 cell 取到对应颜色', () => {
expect(cellSolid.fillColor).toBe('#FF0000');
});
});