Add API for specifying columns with different widths

This commit is contained in:
askoufis
2021-09-18 22:58:19 +10:00
parent a2566e92d2
commit 23fd3b483f
4 changed files with 71 additions and 1 deletions

View File

@ -0,0 +1,37 @@
import { expect } from "chai";
import { Columns } from ".";
import { Formatter } from "export/formatter";
import { Column } from "./column";
describe("Columns", () => {
describe("#constructor()", () => {
it("should create columns of equal width if equalWidth is true", () => {
const columns = new Columns({ count: 3, space: 720 });
const tree = new Formatter().format(columns);
expect(tree["w:cols"]).to.deep.equal({ _attr: { "w:num": 3, "w:space": 720 } });
});
it("should ignore individual column attributes if equalWidth is true", () => {
const unequalColumns = [new Column({ width: 1000, space: 400 }), new Column({ width: 2000 })];
const columns = new Columns({ count: 3, space: 720, equalWidth: true, children: unequalColumns });
const tree = new Formatter().format(columns);
expect(tree).to.deep.equal({ "w:cols": { _attr: { "w:num": 3, "w:space": 720, "w:equalWidth": true } } });
});
it("should have column children if equalWidth is false and individual columns are provided", () => {
const unequalColumns = [new Column({ width: 1000, space: 400 }), new Column({ width: 2000 })];
const columns = new Columns({ count: 3, space: 720, equalWidth: false, children: unequalColumns });
const tree = new Formatter().format(columns);
expect(tree).to.deep.equal({
"w:cols": [
{ _attr: { "w:num": 3, "w:space": 720, "w:equalWidth": false } },
{ "w:col": { _attr: { "w:space": 400, "w:w": 1000 } } },
{ "w:col": { _attr: { "w:w": 2000 } } },
],
});
});
});
});