import { expect } from "chai"; import { Formatter } from "export/formatter"; import { TableCell } from "./table-cell"; import { TableColumn } from "./table-column"; import { EMPTY_OBJECT } from "file/xml-components"; describe("TableColumn", () => { let cells: TableCell[]; beforeEach(() => { cells = [new TableCell(), new TableCell(), new TableCell()]; }); describe("#getCell", () => { it("should get the correct cell", () => { const tableColumn = new TableColumn(cells); const cell = tableColumn.getCell(0); expect(cell).to.deep.equal(cells[0]); const cell2 = tableColumn.getCell(1); expect(cell2).to.deep.equal(cells[1]); }); it("should throw an error if index is out of bounds", () => { const tableColumn = new TableColumn(cells); expect(() => tableColumn.getCell(9)).to.throw(); }); }); describe("#mergeCells", () => { it("should add vMerge to correct cells", () => { const tableColumn = new TableColumn(cells); tableColumn.mergeCells(0, 2); const tree = new Formatter().format(cells[0]); expect(tree).to.deep.equal({ "w:tc": [{ "w:tcPr": [{ "w:vMerge": { _attr: { "w:val": "restart" } } }] }, { "w:p": EMPTY_OBJECT }], }); const tree2 = new Formatter().format(cells[1]); expect(tree2).to.deep.equal({ "w:tc": [{ "w:tcPr": [{ "w:vMerge": { _attr: { "w:val": "continue" } } }] }, { "w:p": EMPTY_OBJECT }], }); const tree3 = new Formatter().format(cells[2]); expect(tree3).to.deep.equal({ "w:tc": [{ "w:tcPr": [{ "w:vMerge": { _attr: { "w:val": "continue" } } }] }, { "w:p": EMPTY_OBJECT }], }); }); }); });