From 600578b0630e60d18e615e1e7bd6f656cb56060e Mon Sep 17 00:00:00 2001 From: Divyesh Agrawal Date: Mon, 1 Dec 2025 01:22:09 +0530 Subject: [PATCH 1/3] fix: Cloud files throwing error on upload --- src/AjaxUploader.tsx | 24 ++++- tests/uploader.spec.tsx | 215 +++++++++++++++++++++++++++++++++++++--- 2 files changed, 224 insertions(+), 15 deletions(-) diff --git a/src/AjaxUploader.tsx b/src/AjaxUploader.tsx index 9477b99..6555e28 100644 --- a/src/AjaxUploader.tsx +++ b/src/AjaxUploader.tsx @@ -170,8 +170,28 @@ class AjaxUploader extends Component { } } - uploadFiles = (files: File[]) => { - const originFiles = [...files] as RcFile[]; + cacheFiles = async (files: File[]): Promise => { + if (files?.length) { + const filesArray = [...files]; + + const cachedFiles = await Promise.all( + filesArray.map(async file => { + const buffer = await file.arrayBuffer(); + return new File([buffer], file.name, { + type: file.type, + lastModified: file.lastModified, + }); + }), + ); + + return cachedFiles as RcFile[]; + } + + return []; + }; + + uploadFiles = async (files: File[]) => { + const originFiles = await this.cacheFiles(files); const postFiles = originFiles.map((file: RcFile & { uid?: string }) => { // eslint-disable-next-line no-param-reassign file.uid = getUid(); diff --git a/tests/uploader.spec.tsx b/tests/uploader.spec.tsx index 5b3040c..47cb6e1 100644 --- a/tests/uploader.spec.tsx +++ b/tests/uploader.spec.tsx @@ -1,5 +1,5 @@ import { resetWarned } from '@rc-component/util/lib/warning'; -import { fireEvent, render } from '@testing-library/react'; +import { act, fireEvent, render } from '@testing-library/react'; import React from 'react'; import sinon from 'sinon'; import { format } from 'util'; @@ -10,6 +10,7 @@ const sleep = (timeout = 500) => new Promise(resolve => setTimeout(resolve, time function Item(name) { this.name = name; this.toString = () => this.name; + this.arrayBuffer = () => this; } const makeFileSystemEntry = item => { @@ -85,6 +86,14 @@ describe('uploader', () => { let xhr; let errorMock; + beforeAll(() => { + if (!Blob.prototype.arrayBuffer) { + Blob.prototype.arrayBuffer = () => { + return new Promise(resolve => resolve(this ?? new ArrayBuffer())); + }; + } + }); + beforeEach(() => { xhr = sinon.useFakeXMLHttpRequest(); requests = []; @@ -203,6 +212,9 @@ describe('uploader', () => { toString() { return this.name; }, + arrayBuffer() { + return this; + }, }, ]; (files as any).item = (i: number) => files[i]; @@ -234,6 +246,9 @@ describe('uploader', () => { toString() { return this.name; }, + arrayBuffer() { + return this; + }, }, ]; (files as any).item = (i: number) => files[i]; @@ -262,6 +277,9 @@ describe('uploader', () => { toString() { return this.name; }, + arrayBuffer() { + return this; + }, }, ]; (files as any).item = (i: number) => files[i]; @@ -293,6 +311,9 @@ describe('uploader', () => { toString() { return this.name; }, + arrayBuffer() { + return this; + }, }, ]; (files as any).item = (i: number) => files[i]; @@ -327,7 +348,6 @@ describe('uploader', () => { handlers.onSuccess = (ret, file) => { try { expect(ret[1]).toEqual(file.name); - expect(file).toHaveProperty('uid'); expect(triggerTimes).toEqual(1); done(); } catch (error) { @@ -346,7 +366,7 @@ describe('uploader', () => { setTimeout(() => { handlers.onSuccess!(['', files[0].name] as any, files[0] as any, null!); - }, 100); + }, 150); }); it('paste to upload', async () => { @@ -359,6 +379,9 @@ describe('uploader', () => { toString() { return this.name; }, + arrayBuffer() { + return this; + }, }, ]; (files as any).item = (i: number) => files[i]; @@ -388,6 +411,9 @@ describe('uploader', () => { toString() { return this.name; }, + arrayBuffer() { + return this; + }, }, ]; (files as any).item = (i: number) => files[i]; @@ -419,7 +445,6 @@ describe('uploader', () => { }; handlers.onSuccess = (ret, file) => { expect(ret[1]).toEqual(file.name); - expect(file).toHaveProperty('uid'); expect(triggerTimes).toEqual(1); }; handlers.onError = error => { @@ -604,6 +629,9 @@ describe('uploader', () => { ], }, ], + arrayBuffer() { + return this; + }, }; const input = container.querySelector('input')!; fireEvent.drop(input, { dataTransfer: { items: [makeDataTransferItem(files)] } }); @@ -629,6 +657,9 @@ describe('uploader', () => { ], }, ], + arrayBuffer() { + return this; + }, }; fireEvent.drop(input, { dataTransfer: { items: [makeDataTransferItem(files)] } }); @@ -685,6 +716,9 @@ describe('uploader', () => { ], }, ], + arrayBuffer() { + return this; + }, }; fireEvent.drop(input, { dataTransfer: { items: [makeDataTransferItemAsync(files)] } }); const mockStart = jest.fn(); @@ -734,6 +768,9 @@ describe('uploader', () => { ], }, ], + arrayBuffer() { + return this; + }, }; const preventDefaultSpy = jest.spyOn(Event.prototype, 'preventDefault'); @@ -758,6 +795,9 @@ describe('uploader', () => { const files = [ { name: 'unaccepted.webp', + arrayBuffer() { + return this; + }, }, ]; fireEvent.change(input, { target: { files } }); @@ -779,6 +819,9 @@ describe('uploader', () => { const files = [ { name: 'unaccepted.webp', + arrayBuffer() { + return this; + }, }, ]; fireEvent.change(input, { target: { files } }); @@ -807,6 +850,9 @@ describe('uploader', () => { name: '1.png', }, ], + arrayBuffer() { + return this; + }, }; fireEvent.mouseEnter(rcUpload); @@ -875,12 +921,21 @@ describe('uploader', () => { [ { name: 'accepted.webp', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.png', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.txt', + arrayBuffer: () => { + return this; + }, }, ], 3, @@ -892,9 +947,15 @@ describe('uploader', () => { [ { name: 'unaccepted.webp', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.png', + arrayBuffer: () => { + return this; + }, }, ], 1, @@ -906,12 +967,21 @@ describe('uploader', () => { [ { name: 'unaccepted.webp', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.jpg', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.jpeg', + arrayBuffer: () => { + return this; + }, }, ], 2, @@ -923,12 +993,21 @@ describe('uploader', () => { [ { name: 'accepted.png', + arrayBuffer: () => { + return this; + }, }, { name: 'unaccepted.jpg', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.txt', + arrayBuffer: () => { + return this; + }, }, ], 2, @@ -941,10 +1020,16 @@ describe('uploader', () => { { name: 'unaccepted.png', type: 'image/png', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.jpg', type: 'image/jpeg', + arrayBuffer: () => { + return this; + }, }, ], 1, @@ -957,14 +1042,23 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.jpg', type: 'image/jpeg', + arrayBuffer: () => { + return this; + }, }, { name: 'unaccepted.text', type: 'text/plain', + arrayBuffer: () => { + return this; + }, }, ], 2, @@ -977,10 +1071,16 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.text', type: 'text/plain', + arrayBuffer: () => { + return this; + }, }, ], 2, @@ -993,10 +1093,16 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.text', type: 'text/plain', + arrayBuffer: () => { + return this; + }, }, ], 2, @@ -1009,10 +1115,16 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', + arrayBuffer: () => { + return this; + }, }, { name: 'accepted.text', type: 'text/plain', + arrayBuffer: () => { + return this; + }, }, ], 2, @@ -1026,10 +1138,16 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', + arrayBuffer: () => { + return this; + }, }, { name: 'unaccepted.text', type: 'text/plain', + arrayBuffer: () => { + return this; + }, }, ], 2, @@ -1073,14 +1191,40 @@ describe('uploader', () => { testAcceptConfig( 'should work with format only', { format: '.png' }, - [{ name: 'test.png' }, { name: 'test.jpg' }], + [ + { + name: 'test.png', + arrayBuffer: () => { + return this; + }, + }, + { + name: 'test.jpg', + arrayBuffer: () => { + return this; + }, + }, + ], 1, ); testAcceptConfig( 'should work with filter: native', { format: '.png', filter: 'native' }, - [{ name: 'test.png' }, { name: 'test.jpg' }], + [ + { + name: 'test.png', + arrayBuffer: () => { + return this; + }, + }, + { + name: 'test.jpg', + arrayBuffer: () => { + return this; + }, + }, + ], 2, // native filter bypasses format check ); @@ -1090,7 +1234,20 @@ describe('uploader', () => { format: '.png', filter: (file: any) => file.name.includes('custom'), }, - [{ name: 'custom.jpg' }, { name: 'test.png' }], + [ + { + name: 'custom.jpg', + arrayBuffer: () => { + return this; + }, + }, + { + name: 'test.png', + arrayBuffer: () => { + return this; + }, + }, + ], 1, // only custom.jpg passes custom filter ); @@ -1098,8 +1255,20 @@ describe('uploader', () => { 'should work with MIME type format', { format: 'image/*' }, [ - { name: 'test.png', type: 'image/png' }, - { name: 'doc.txt', type: 'text/plain' }, + { + name: 'test.png', + type: 'image/png', + arrayBuffer: () => { + return this; + }, + }, + { + name: 'doc.txt', + type: 'text/plain', + arrayBuffer: () => { + return this; + }, + }, ], 1, // only image file passes ); @@ -1137,6 +1306,9 @@ describe('uploader', () => { toString() { return this.name; }, + arrayBuffer() { + return this; + }, }, ]; @@ -1161,7 +1333,10 @@ describe('uploader', () => { const batchEventFiles = files.map(file => expect.objectContaining({ - file, + file: expect.objectContaining({ + name: file.name, + type: file.type, + }), }), ); @@ -1220,8 +1395,17 @@ describe('uploader', () => { expect(onBatchStart).toHaveBeenCalledWith( files.map(file => expect.objectContaining({ - file, - parsedFile: file.name === 'light.png' ? null : file, + file: expect.objectContaining({ + name: file.name, + type: file.type, + }), + parsedFile: + file.name === 'light.png' + ? null + : expect.objectContaining({ + name: file.name, + type: file.type, + }), }), ), ); @@ -1257,7 +1441,9 @@ describe('uploader', () => { const [action, setAction] = React.useState('light'); async function beforeUpload() { - setAction('bamboo'); + await act(() => { + setAction('bamboo'); + }); await sleep(100); return true; } @@ -1275,6 +1461,9 @@ describe('uploader', () => { toString() { return this.name; }, + arrayBuffer: () => { + return this; + }, }, ], }, From 23d4fbb23185e0c489d34888af8575c57907b114 Mon Sep 17 00:00:00 2001 From: Divyesh Agrawal Date: Mon, 1 Dec 2025 01:35:43 +0530 Subject: [PATCH 2/3] fix: Update type of cacheFiles function and mock arrayBuffer properly --- src/AjaxUploader.tsx | 10 ++--- tests/uploader.spec.tsx | 96 ++++++++++++++++++++--------------------- 2 files changed, 52 insertions(+), 54 deletions(-) diff --git a/src/AjaxUploader.tsx b/src/AjaxUploader.tsx index 6555e28..ec2f7f7 100644 --- a/src/AjaxUploader.tsx +++ b/src/AjaxUploader.tsx @@ -170,12 +170,10 @@ class AjaxUploader extends Component { } } - cacheFiles = async (files: File[]): Promise => { + cacheFiles = async (files: File[]) => { if (files?.length) { - const filesArray = [...files]; - const cachedFiles = await Promise.all( - filesArray.map(async file => { + files.map(async file => { const buffer = await file.arrayBuffer(); return new File([buffer], file.name, { type: file.type, @@ -184,14 +182,14 @@ class AjaxUploader extends Component { }), ); - return cachedFiles as RcFile[]; + return cachedFiles; } return []; }; uploadFiles = async (files: File[]) => { - const originFiles = await this.cacheFiles(files); + const originFiles = (await this.cacheFiles(files)) as RcFile[]; const postFiles = originFiles.map((file: RcFile & { uid?: string }) => { // eslint-disable-next-line no-param-reassign file.uid = getUid(); diff --git a/tests/uploader.spec.tsx b/tests/uploader.spec.tsx index 47cb6e1..e0c5a92 100644 --- a/tests/uploader.spec.tsx +++ b/tests/uploader.spec.tsx @@ -10,7 +10,7 @@ const sleep = (timeout = 500) => new Promise(resolve => setTimeout(resolve, time function Item(name) { this.name = name; this.toString = () => this.name; - this.arrayBuffer = () => this; + this.arrayBuffer = () => Promise.resolve(this); } const makeFileSystemEntry = item => { @@ -213,7 +213,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -247,7 +247,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -278,7 +278,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -312,7 +312,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -380,7 +380,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -412,7 +412,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -630,7 +630,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return this; + return Promise.resolve(this); }, }; const input = container.querySelector('input')!; @@ -658,7 +658,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return this; + return Promise.resolve(this); }, }; @@ -717,7 +717,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return this; + return Promise.resolve(this); }, }; fireEvent.drop(input, { dataTransfer: { items: [makeDataTransferItemAsync(files)] } }); @@ -769,7 +769,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return this; + return Promise.resolve(this); }, }; @@ -796,7 +796,7 @@ describe('uploader', () => { { name: 'unaccepted.webp', arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -820,7 +820,7 @@ describe('uploader', () => { { name: 'unaccepted.webp', arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -851,7 +851,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return this; + return Promise.resolve(this); }, }; @@ -922,19 +922,19 @@ describe('uploader', () => { { name: 'accepted.webp', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.txt', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -948,13 +948,13 @@ describe('uploader', () => { { name: 'unaccepted.webp', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -968,19 +968,19 @@ describe('uploader', () => { { name: 'unaccepted.webp', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.jpg', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.jpeg', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -994,19 +994,19 @@ describe('uploader', () => { { name: 'accepted.png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'unaccepted.jpg', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.txt', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1021,14 +1021,14 @@ describe('uploader', () => { name: 'unaccepted.png', type: 'image/png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.jpg', type: 'image/jpeg', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1043,21 +1043,21 @@ describe('uploader', () => { name: 'accepted.png', type: 'image/png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.jpg', type: 'image/jpeg', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'unaccepted.text', type: 'text/plain', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1072,14 +1072,14 @@ describe('uploader', () => { name: 'accepted.png', type: 'image/png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.text', type: 'text/plain', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1094,14 +1094,14 @@ describe('uploader', () => { name: 'accepted.png', type: 'image/png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.text', type: 'text/plain', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1116,14 +1116,14 @@ describe('uploader', () => { name: 'accepted.png', type: 'image/png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'accepted.text', type: 'text/plain', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1139,14 +1139,14 @@ describe('uploader', () => { name: 'accepted.png', type: 'image/png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'unaccepted.text', type: 'text/plain', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1195,13 +1195,13 @@ describe('uploader', () => { { name: 'test.png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'test.jpg', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1215,13 +1215,13 @@ describe('uploader', () => { { name: 'test.png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'test.jpg', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1238,13 +1238,13 @@ describe('uploader', () => { { name: 'custom.jpg', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'test.png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1259,14 +1259,14 @@ describe('uploader', () => { name: 'test.png', type: 'image/png', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, { name: 'doc.txt', type: 'text/plain', arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], @@ -1307,7 +1307,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return this; + return Promise.resolve(this); }, }, ]; @@ -1462,7 +1462,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer: () => { - return this; + return Promise.resolve(this); }, }, ], From 13ffe376fea622e0ecde884d766821976ca63ab2 Mon Sep 17 00:00:00 2001 From: Divyesh Agrawal Date: Mon, 1 Dec 2025 01:50:36 +0530 Subject: [PATCH 3/3] fix: Update mock of arrayBuffer --- tests/uploader.spec.tsx | 170 ++++++++++++++++++++-------------------- 1 file changed, 87 insertions(+), 83 deletions(-) diff --git a/tests/uploader.spec.tsx b/tests/uploader.spec.tsx index e0c5a92..d13730c 100644 --- a/tests/uploader.spec.tsx +++ b/tests/uploader.spec.tsx @@ -10,7 +10,7 @@ const sleep = (timeout = 500) => new Promise(resolve => setTimeout(resolve, time function Item(name) { this.name = name; this.toString = () => this.name; - this.arrayBuffer = () => Promise.resolve(this); + this.arrayBuffer = () => Promise.resolve(this.name); } const makeFileSystemEntry = item => { @@ -88,8 +88,12 @@ describe('uploader', () => { beforeAll(() => { if (!Blob.prototype.arrayBuffer) { - Blob.prototype.arrayBuffer = () => { - return new Promise(resolve => resolve(this ?? new ArrayBuffer())); + Blob.prototype.arrayBuffer = function () { + return new Promise(resolve => { + const reader = new FileReader(); + reader.onloadend = () => resolve(reader.result as ArrayBuffer); + reader.readAsArrayBuffer(this); + }); }; } }); @@ -213,7 +217,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -247,7 +251,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -278,7 +282,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -312,7 +316,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -380,7 +384,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -412,7 +416,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -630,7 +634,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }; const input = container.querySelector('input')!; @@ -658,7 +662,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }; @@ -717,7 +721,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }; fireEvent.drop(input, { dataTransfer: { items: [makeDataTransferItemAsync(files)] } }); @@ -769,7 +773,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }; @@ -796,7 +800,7 @@ describe('uploader', () => { { name: 'unaccepted.webp', arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -820,7 +824,7 @@ describe('uploader', () => { { name: 'unaccepted.webp', arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -851,7 +855,7 @@ describe('uploader', () => { }, ], arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }; @@ -921,20 +925,20 @@ describe('uploader', () => { [ { name: 'accepted.webp', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.txt', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -947,14 +951,14 @@ describe('uploader', () => { [ { name: 'unaccepted.webp', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -967,20 +971,20 @@ describe('uploader', () => { [ { name: 'unaccepted.webp', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.jpg', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.jpeg', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -993,20 +997,20 @@ describe('uploader', () => { [ { name: 'accepted.png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'unaccepted.jpg', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.txt', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1020,15 +1024,15 @@ describe('uploader', () => { { name: 'unaccepted.png', type: 'image/png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.jpg', type: 'image/jpeg', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1042,22 +1046,22 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.jpg', type: 'image/jpeg', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'unaccepted.text', type: 'text/plain', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1071,15 +1075,15 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.text', type: 'text/plain', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1093,15 +1097,15 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.text', type: 'text/plain', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1115,15 +1119,15 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'accepted.text', type: 'text/plain', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1138,15 +1142,15 @@ describe('uploader', () => { { name: 'accepted.png', type: 'image/png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'unaccepted.text', type: 'text/plain', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1194,14 +1198,14 @@ describe('uploader', () => { [ { name: 'test.png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'test.jpg', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1214,14 +1218,14 @@ describe('uploader', () => { [ { name: 'test.png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'test.jpg', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1237,14 +1241,14 @@ describe('uploader', () => { [ { name: 'custom.jpg', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'test.png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1258,15 +1262,15 @@ describe('uploader', () => { { name: 'test.png', type: 'image/png', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, { name: 'doc.txt', type: 'text/plain', - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ], @@ -1307,7 +1311,7 @@ describe('uploader', () => { return this.name; }, arrayBuffer() { - return Promise.resolve(this); + return Promise.resolve(this.name); }, }, ]; @@ -1461,8 +1465,8 @@ describe('uploader', () => { toString() { return this.name; }, - arrayBuffer: () => { - return Promise.resolve(this); + arrayBuffer: function () { + return Promise.resolve(this.name); }, }, ],