2018-11-02 00:42:49 +00:00
|
|
|
import { expect } from "chai";
|
2018-12-16 01:56:42 +00:00
|
|
|
import * as sinon from "sinon";
|
2018-11-02 00:42:49 +00:00
|
|
|
|
|
|
|
import { Formatter } from "export/formatter";
|
|
|
|
|
|
|
|
import { File } from "./file";
|
2018-12-16 01:56:42 +00:00
|
|
|
import { Paragraph } from "./paragraph";
|
|
|
|
import { Table } from "./table";
|
2018-11-02 00:42:49 +00:00
|
|
|
|
|
|
|
describe("File", () => {
|
|
|
|
describe("#constructor", () => {
|
2019-01-03 02:36:56 +00:00
|
|
|
it("should create with correct headers and footers", () => {
|
2018-11-02 00:42:49 +00:00
|
|
|
const doc = new File();
|
|
|
|
const header = doc.createHeader();
|
|
|
|
const footer = doc.createFooter();
|
|
|
|
|
|
|
|
doc.addSection({
|
|
|
|
headers: {
|
|
|
|
default: header,
|
|
|
|
},
|
|
|
|
footers: {
|
|
|
|
default: footer,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
const tree = new Formatter().format(doc.Document.Body);
|
|
|
|
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][4]["w:headerReference"][0]._attr["w:type"]).to.equal("default");
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][5]["w:footerReference"][0]._attr["w:type"]).to.equal("default");
|
|
|
|
});
|
|
|
|
|
2019-01-03 02:36:56 +00:00
|
|
|
it("should create with first headers and footers", () => {
|
|
|
|
const doc = new File();
|
|
|
|
const header = doc.createHeader();
|
|
|
|
const footer = doc.createFooter();
|
|
|
|
|
|
|
|
doc.addSection({
|
|
|
|
headers: {
|
|
|
|
first: header,
|
|
|
|
},
|
|
|
|
footers: {
|
|
|
|
first: footer,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
const tree = new Formatter().format(doc.Document.Body);
|
|
|
|
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][4]["w:headerReference"][0]._attr["w:type"]).to.equal("first");
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][5]["w:footerReference"][0]._attr["w:type"]).to.equal("first");
|
|
|
|
});
|
|
|
|
|
2018-11-02 00:42:49 +00:00
|
|
|
it("should create with correct headers", () => {
|
|
|
|
const doc = new File();
|
|
|
|
const header = doc.createHeader();
|
|
|
|
const footer = doc.createFooter();
|
|
|
|
|
|
|
|
doc.addSection({
|
|
|
|
headers: {
|
|
|
|
default: header,
|
|
|
|
first: header,
|
|
|
|
even: header,
|
|
|
|
},
|
|
|
|
footers: {
|
|
|
|
default: footer,
|
|
|
|
first: footer,
|
|
|
|
even: footer,
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
const tree = new Formatter().format(doc.Document.Body);
|
|
|
|
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][4]["w:headerReference"][0]._attr["w:type"]).to.equal("default");
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][5]["w:headerReference"][0]._attr["w:type"]).to.equal("first");
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][6]["w:headerReference"][0]._attr["w:type"]).to.equal("even");
|
|
|
|
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][7]["w:footerReference"][0]._attr["w:type"]).to.equal("default");
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][8]["w:footerReference"][0]._attr["w:type"]).to.equal("first");
|
|
|
|
expect(tree["w:body"][1]["w:sectPr"][9]["w:footerReference"][0]._attr["w:type"]).to.equal("even");
|
|
|
|
});
|
|
|
|
});
|
2018-12-16 01:56:42 +00:00
|
|
|
|
|
|
|
describe("#addParagraph", () => {
|
2019-01-03 02:36:56 +00:00
|
|
|
it("should call the underlying document's addParagraph", () => {
|
2018-12-16 01:56:42 +00:00
|
|
|
const file = new File();
|
|
|
|
const spy = sinon.spy(file.Document, "addParagraph");
|
|
|
|
file.addParagraph(new Paragraph());
|
|
|
|
|
|
|
|
expect(spy.called).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("#addTable", () => {
|
2019-01-03 02:36:56 +00:00
|
|
|
it("should call the underlying document's addTable", () => {
|
2018-12-16 01:56:42 +00:00
|
|
|
const wrapper = new File();
|
|
|
|
const spy = sinon.spy(wrapper.Document, "addTable");
|
2019-03-13 02:29:11 +00:00
|
|
|
wrapper.addTable(
|
|
|
|
new Table({
|
|
|
|
rows: 1,
|
|
|
|
columns: 1,
|
|
|
|
}),
|
|
|
|
);
|
2018-12-16 01:56:42 +00:00
|
|
|
|
|
|
|
expect(spy.called).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
2019-01-03 02:36:56 +00:00
|
|
|
|
|
|
|
describe("#createTable", () => {
|
|
|
|
it("should call the underlying document's createTable", () => {
|
|
|
|
const wrapper = new File();
|
|
|
|
const spy = sinon.spy(wrapper.Document, "createTable");
|
2019-03-13 02:29:11 +00:00
|
|
|
wrapper.createTable({
|
|
|
|
rows: 1,
|
|
|
|
columns: 1,
|
|
|
|
});
|
2019-01-03 02:36:56 +00:00
|
|
|
|
|
|
|
expect(spy.called).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("#addTableOfContents", () => {
|
|
|
|
it("should call the underlying document's addTableOfContents", () => {
|
|
|
|
const wrapper = new File();
|
|
|
|
const spy = sinon.spy(wrapper.Document, "addTableOfContents");
|
|
|
|
// tslint:disable-next-line:no-any
|
|
|
|
wrapper.addTableOfContents({} as any);
|
|
|
|
|
|
|
|
expect(spy.called).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("#createParagraph", () => {
|
|
|
|
it("should call the underlying document's createParagraph", () => {
|
|
|
|
const wrapper = new File();
|
|
|
|
const spy = sinon.spy(wrapper.Document, "createParagraph");
|
|
|
|
wrapper.createParagraph("test");
|
|
|
|
|
|
|
|
expect(spy.called).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("#addImage", () => {
|
|
|
|
it("should call the underlying document's addImage", () => {
|
|
|
|
const wrapper = new File();
|
|
|
|
const spy = sinon.spy(wrapper.Document, "addParagraph");
|
|
|
|
// tslint:disable-next-line:no-any
|
|
|
|
wrapper.addImage({} as any);
|
|
|
|
|
|
|
|
expect(spy.called).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("#createImage", () => {
|
|
|
|
it("should call the underlying document's createImage", () => {
|
|
|
|
const wrapper = new File();
|
|
|
|
const spy = sinon.spy(wrapper.Media, "addMedia");
|
|
|
|
const wrapperSpy = sinon.spy(wrapper.Document, "addParagraph");
|
|
|
|
wrapper.createImage("");
|
|
|
|
|
|
|
|
expect(spy.called).to.equal(true);
|
|
|
|
expect(wrapperSpy.called).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
describe("#createFootnote", () => {
|
|
|
|
it("should call the underlying document's createFootnote", () => {
|
|
|
|
const wrapper = new File();
|
|
|
|
const spy = sinon.spy(wrapper.FootNotes, "createFootNote");
|
|
|
|
wrapper.createFootnote(new Paragraph(""));
|
|
|
|
|
|
|
|
expect(spy.called).to.equal(true);
|
|
|
|
});
|
|
|
|
});
|
2018-11-02 00:42:49 +00:00
|
|
|
});
|