From 5db8376f95285357aa2808aa64d0f04f6c133621 Mon Sep 17 00:00:00 2001 From: lana-k Date: Mon, 12 Apr 2021 18:23:48 +0200 Subject: [PATCH] add tests for readAsArrayBuffer method #27 --- src/fileUtils.js | 3 ++- tests/unit/fileUtils.spec.js | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/fileUtils.js b/src/fileUtils.js index 8068d0e..6907a4c 100644 --- a/src/fileUtils.js +++ b/src/fileUtils.js @@ -36,10 +36,11 @@ export default { }, importFile () { + const reader = new FileReader() + return this.getFileFromUser('.json') .then(file => { return new Promise((resolve, reject) => { - const reader = new FileReader() reader.onload = e => { resolve(e.target.result) } diff --git a/tests/unit/fileUtils.spec.js b/tests/unit/fileUtils.spec.js index 06c4f28..617ce60 100644 --- a/tests/unit/fileUtils.spec.js +++ b/tests/unit/fileUtils.spec.js @@ -87,4 +87,24 @@ describe('fileUtils.js', () => { fu.readFile('./foo.bar') expect(window.fetch.calledOnceWith('./foo.bar')).to.equal(true) }) + + it('readAsArrayBuffer resolves', async () => { + const blob = new Blob(['foo']) + const buffer = await fu.readAsArrayBuffer(blob) + + const uint8Array = new Uint8Array(buffer) + const text = new TextDecoder().decode(uint8Array) + expect(text).to.equal('foo') + }) + + it('readAsArrayBuffer rejects', async () => { + const r = new FileReader() + r.readAsArrayBuffer = () => { + r.dispatchEvent(new Event('error'), ) + } + sinon.stub(window, 'FileReader').returns(r) + + const blob = new Blob(['foo']) + await expect(fu.readAsArrayBuffer(blob)).to.be.rejectedWith('Problem parsing input file.') + }) })