docx
Version:
Easily generate .docx files with JS/TS with a nice declarative API. Works for Node and on the Browser.
66 lines (52 loc) • 2.17 kB
text/typescript
import { expect } from "chai";
import { Formatter } from "export/formatter";
import { Settings } from "./settings";
describe("Settings", () => {
describe("#constructor", () => {
it("should create a empty Settings with correct rootKey", () => {
const settings = new Settings({});
const tree = new Formatter().format(settings);
expect(Object.keys(tree)).has.length(1);
expect(tree["w:settings"]).to.be.an("array");
});
it("should add updateFields setting", () => {
const settings = new Settings({
updateFields: true,
});
const tree = new Formatter().format(settings);
expect(Object.keys(tree)).has.length(1);
expect(tree["w:settings"]).to.be.an("array");
expect(tree["w:settings"]).to.deep.include({
"w:updateFields": {},
});
});
it("should indicate modern word compatibility by default", () => {
const settings = new Settings({});
const tree = new Formatter().format(settings);
expect(Object.keys(tree)).has.length(1);
expect(tree["w:settings"]).to.be.an("array");
const compat = tree["w:settings"][2];
expect(compat).to.be.an("object").with.keys("w:compat");
expect(compat["w:compat"]).to.deep.include({
"w:compatSetting": {
_attr: {
"w:val": 15,
"w:uri": "http://schemas.microsoft.com/office/word",
"w:name": "compatibilityMode",
},
},
});
});
it("should add trackRevisions setting", () => {
const settings = new Settings({
trackRevisions: true,
});
const tree = new Formatter().format(settings);
expect(Object.keys(tree)).has.length(1);
expect(tree["w:settings"]).to.be.an("array");
expect(tree["w:settings"]).to.deep.include({
"w:trackRevisions": {},
});
});
});
});