Files
docx-js/src/file/document/body/section-properties/properties/page-borders.spec.ts

94 lines
3.5 KiB
TypeScript
Raw Normal View History

2023-06-05 00:33:43 +01:00
import { describe, expect, it } from "vitest";
import { Formatter } from "@export/formatter";
import { BorderStyle } from "@file/border";
2018-10-26 01:04:07 +01:00
2018-08-09 23:22:03 +01:00
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.deep.equal({ _attr: { "w:display": "firstPage" } });
});
2021-03-13 19:53:36 +00:00
it("should create page borders with default configuration", () => {
const properties = new PageBorders({});
const tree = new Formatter().format(properties);
expect(Object.keys(tree)).to.deep.equal(["w:pgBorders"]);
expect(tree).to.deep.equal({
"w:pgBorders": {
_attr: {},
},
});
});
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": {
2021-05-23 07:14:00 +03:00
_attr: { "w:color": "001122", "w:sz": 10, "w:val": "doubleWave" },
},
});
expect(tree["w:pgBorders"][2]).to.deep.equal({
"w:left": {
_attr: { "w:color": "889900", "w:sz": 40, "w:val": "dotted" },
},
});
expect(tree["w:pgBorders"][3]).to.deep.equal({
"w:bottom": {
2021-05-23 07:14:00 +03:00
_attr: { "w:color": "556677", "w:sz": 30, "w:val": "single" },
},
});
expect(tree["w:pgBorders"][4]).to.deep.equal({
"w:right": {
_attr: { "w:color": "223344", "w:sz": 20, "w:val": "double" },
},
});
});
});
});