Merge pull request #1589 from dolanmiu/feat/1583-fix-comments-missing
#1583 Comments to always write default data
This commit is contained in:
8
.nycrc
8
.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"
|
||||
],
|
||||
|
@ -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,
|
||||
},
|
||||
}),
|
||||
],
|
||||
}),
|
||||
],
|
||||
},
|
||||
],
|
||||
});
|
||||
|
@ -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",
|
||||
},
|
||||
};
|
||||
|
@ -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();
|
||||
|
Reference in New Issue
Block a user