diff --git a/lib/encodePacket.browser.ts b/lib/encodePacket.browser.ts index e1c522e..39e406a 100644 --- a/lib/encodePacket.browser.ts +++ b/lib/encodePacket.browser.ts @@ -45,7 +45,7 @@ const encodeBlobAsBase64 = ( const fileReader = new FileReader(); fileReader.onload = function() { const content = (fileReader.result as string).split(",")[1]; - callback("b" + content); + callback("b" + (content || "")); }; return fileReader.readAsDataURL(data); }; diff --git a/test/browser.ts b/test/browser.ts index 1c630d3..3c991d1 100644 --- a/test/browser.ts +++ b/test/browser.ts @@ -97,6 +97,18 @@ describe("engine.io-parser (browser only)", () => { done(); }); }); + + it("should encode/decode a string + a 0-length ArrayBuffer payload", done => { + const packets: Packet[] = [ + { type: "message", data: "test" }, + { type: "message", data: createArrayBuffer([]) } + ]; + encodePayload(packets, payload => { + expect(payload).to.eql("4test\x1eb"); + expect(decodePayload(payload, "arraybuffer")).to.eql(packets); + done(); + }); + }); } }); });