diff --git a/.nycrc b/.nycrc index 532628ce04..2d0c37e9f9 100644 --- a/.nycrc +++ b/.nycrc @@ -1,9 +1,9 @@ { "check-coverage": true, - "statements": 99.43, - "branches": 96.6, - "functions": 99.47, - "lines": 99.43, + "statements": 99.62, + "branches": 96.81, + "functions": 99.82, + "lines": 99.62, "include": [ "src/**/*.ts" ], diff --git a/src/export/packer/next-compiler.spec.ts b/src/export/packer/next-compiler.spec.ts index c31a8c4ce7..3cd56c211f 100644 --- a/src/export/packer/next-compiler.spec.ts +++ b/src/export/packer/next-compiler.spec.ts @@ -4,7 +4,8 @@ import * as sinon from "sinon"; import { File } from "@file/file"; import { Footer, Header } from "@file/header"; -import { Paragraph } from "@file/paragraph"; +import { ImageRun, Paragraph } from "@file/paragraph"; +import * as convenienceFunctions from "@util/convenience-functions"; import { Compiler } from "./next-compiler"; @@ -15,6 +16,14 @@ describe("Compiler", () => { compiler = new Compiler(); }); + before(() => { + sinon.stub(convenienceFunctions, "uniqueId").callsFake(() => "test"); + }); + + after(() => { + (convenienceFunctions.uniqueId as sinon.SinonStub).restore(); + }); + describe("#compile()", () => { it("should pack all the content", async function () { this.timeout(99999999); @@ -111,18 +120,38 @@ describe("Compiler", () => { const spy = sinon.spy(compiler["formatter"], "format"); compiler.compile(file); - expect(spy.callCount).to.equal(12); + expect(spy.callCount).to.equal(13); }); it("should work with media datas", () => { // This test is required because before, there was a case where Document was formatted twice, which was inefficient // This also caused issues such as running prepForXml multiple times as format() was ran multiple times. - const paragraph = new Paragraph(""); const file = new File({ sections: [ { - properties: {}, - children: [paragraph], + headers: { + default: new Header({ + children: [new Paragraph("test")], + }), + }, + footers: { + default: new Footer({ + children: [new Paragraph("test")], + }), + }, + children: [ + new Paragraph({ + children: [ + new ImageRun({ + data: Buffer.from("", "base64"), + transformation: { + width: 100, + height: 100, + }, + }), + ], + }), + ], }, ], }); diff --git a/src/export/packer/next-compiler.ts b/src/export/packer/next-compiler.ts index 59776fe1c4..3179af9a2e 100644 --- a/src/export/packer/next-compiler.ts +++ b/src/export/packer/next-compiler.ts @@ -406,26 +406,19 @@ export class Compiler { path: "word/settings.xml", }, Comments: { - data: (() => { - if (!file.Comments) { - return; - } - - const data = xml( - this.formatter.format(file.Comments, { - viewWrapper: file.Document, - file, - }), - { - indent: prettify, - declaration: { - standalone: "yes", - encoding: "UTF-8", - }, + data: xml( + this.formatter.format(file.Comments, { + viewWrapper: file.Document, + file, + }), + { + indent: prettify, + declaration: { + standalone: "yes", + encoding: "UTF-8", }, - ); - return data; - })(), + }, + ), path: "word/comments.xml", }, }; diff --git a/src/file/file.ts b/src/file/file.ts index afd13e5b6f..b640ba9b33 100644 --- a/src/file/file.ts +++ b/src/file/file.ts @@ -71,10 +71,7 @@ export class File { }, ); - if (options.comments) { - this.comments = new Comments(options.comments); - } - + this.comments = new Comments(options.comments ?? { children: [] }); this.fileRelationships = new Relationships(); this.customProperties = new CustomProperties(options.customProperties ?? []); this.appProperties = new AppProperties();