Added support for w:fldSimple, including convenience class for simple MailMerge fields

This commit is contained in:
Paul de Groot
2021-05-04 23:38:25 +02:00
parent 7acd9e1fde
commit 85583a3dbd
4 changed files with 66 additions and 2 deletions

View File

@ -0,0 +1,38 @@
import { expect } from "chai";
import { Formatter } from "export/formatter";
import { SimpleField, SimpleMailMergeField } from "./simple-field";
describe("SimpleField", () => {
describe("#constructor()", () => {
it("uses the instruction given", () => {
const tree = new Formatter().format(new SimpleField("FILENAME"));
expect(tree).to.deep.equal({ "w:fldSimple": { _attr: { "w:instr": "FILENAME" } } });
});
it("accepts a cached value", () => {
const tree = new Formatter().format(new SimpleField("FILENAME", "ExampleDoc.docx"));
expect(tree).to.deep.equal({
"w:fldSimple": [
{ _attr: { "w:instr": "FILENAME" } },
{ "w:r": [{ "w:t": [{ _attr: { "xml:space": "preserve" } }, "ExampleDoc.docx"] }] },
],
});
});
});
});
describe("SimpleMailMergeField", () => {
describe("#constructor()", () => {
it("creates a simple field", () => {
const tree = new Formatter().format(new SimpleMailMergeField("Name"));
expect(tree).to.deep.equal({
"w:fldSimple": [
{ _attr: { "w:instr": " MERGEFIELD Name " } },
{ "w:r": [{ "w:t": [{ _attr: { "xml:space": "preserve" } }, "«Name»"] }] },
],
});
});
});
});