import { expect } from "chai"; import { Formatter } from "../../../../../export/formatter"; import { BorderStyle } from "../../../../styles"; import { PageBorderDisplay, PageBorders, PageBorderZOrder } from "./page-borders"; describe("PageBorders", () => { describe("#constructor()", () => { it("should create empty element when no options are passed", () => { const properties = new PageBorders(); expect(() => new Formatter().format(properties)).to.throw(); }); it("should create page borders with some configuration", () => { const properties = new PageBorders({ pageBorders: { display: PageBorderDisplay.FIRST_PAGE, }, }); const tree = new Formatter().format(properties); expect(Object.keys(tree)).to.deep.equal(["w:pgBorders"]); expect(tree["w:pgBorders"]).to.be.an.instanceof(Array); expect(tree["w:pgBorders"][0]).to.deep.equal({ _attr: { "w:display": "firstPage" } }); }); it("should create page borders with full configuration", () => { const properties = new PageBorders({ pageBorders: { display: PageBorderDisplay.FIRST_PAGE, zOrder: PageBorderZOrder.BACK, }, pageBorderTop: { style: BorderStyle.DOUBLE_WAVE, size: 10, color: "001122", }, pageBorderRight: { style: BorderStyle.DOUBLE, size: 20, color: "223344", }, pageBorderBottom: { style: BorderStyle.SINGLE, size: 30, color: "556677", }, pageBorderLeft: { style: BorderStyle.DOTTED, size: 40, color: "889900", }, }); const tree = new Formatter().format(properties); expect(Object.keys(tree)).to.deep.equal(["w:pgBorders"]); expect(tree["w:pgBorders"]).to.be.an.instanceof(Array); expect(tree["w:pgBorders"][0]).to.deep.equal({ _attr: { "w:display": "firstPage", "w:zOrder": "back" } }); expect(tree["w:pgBorders"][1]).to.deep.equal({ "w:top": [ { _attr: { "w:color": "001122", "w:size": 10, "w:val": "doubleWave" }, }, ], }); expect(tree["w:pgBorders"][2]).to.deep.equal({ "w:right": [ { _attr: { "w:color": "223344", "w:size": 20, "w:val": "double" }, }, ], }); expect(tree["w:pgBorders"][3]).to.deep.equal({ "w:bottom": [ { _attr: { "w:color": "556677", "w:size": 30, "w:val": "single" }, }, ], }); expect(tree["w:pgBorders"][4]).to.deep.equal({ "w:left": [ { _attr: { "w:color": "889900", "w:size": 40, "w:val": "dotted" }, }, ], }); }); }); });