diff --git a/src/export/packer/packer.spec.ts b/src/export/packer/packer.spec.ts index 110089da01..b61165ab46 100644 --- a/src/export/packer/packer.spec.ts +++ b/src/export/packer/packer.spec.ts @@ -46,4 +46,24 @@ describe("Packer", () => { }); }); }); + + describe("#toBase64String()", () => { + it("should create a standard docx file", async function() { + this.timeout(99999999); + const str = await packer.toBase64String(file); + + assert.isDefined(str); + assert.isTrue(str.length > 0); + }); + + it("should handle exception if it throws any", () => { + // tslint:disable-next-line:no-any + const compiler = stub((packer as any).compiler, "compile"); + + compiler.throwsException(); + return packer.toBase64String(file).catch((error) => { + assert.isDefined(error); + }); + }); + }); }); diff --git a/src/export/packer/packer.ts b/src/export/packer/packer.ts index e85b42c8ea..856f74b59e 100644 --- a/src/export/packer/packer.ts +++ b/src/export/packer/packer.ts @@ -10,21 +10,30 @@ export class Packer { public async toBuffer(file: File): Promise { const zip = await this.compiler.compile(file); - const zipData = (await zip.generateAsync({ type: "nodebuffer" })) as Buffer; + const zipData = (await zip.generateAsync({ + type: "nodebuffer", + mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + })) as Buffer; return zipData; } public async toBase64String(file: File): Promise { const zip = await this.compiler.compile(file); - const zipData = (await zip.generateAsync({ type: "base64" })) as string; + const zipData = (await zip.generateAsync({ + type: "base64", + mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + })) as string; return zipData; } public async toBlob(file: File): Promise { const zip = await this.compiler.compile(file); - const zipData = (await zip.generateAsync({ type: "blob" })) as Blob; + const zipData = (await zip.generateAsync({ + type: "blob", + mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + })) as Blob; return zipData; }