diff --git a/src/AjaxUploader.tsx b/src/AjaxUploader.tsx index 0de6c29..3461c00 100644 --- a/src/AjaxUploader.tsx +++ b/src/AjaxUploader.tsx @@ -85,7 +85,7 @@ class AjaxUploader extends Component { let acceptFiles = [...files].filter((file: RcFile) => attrAccept(file, accept)); if (multiple === false) { - acceptFiles = files.slice(0, 1); + acceptFiles = acceptFiles.slice(0, 1); } this.uploadFiles(acceptFiles); diff --git a/tests/uploader.spec.tsx b/tests/uploader.spec.tsx index 44a4771..bfd8c26 100644 --- a/tests/uploader.spec.tsx +++ b/tests/uploader.spec.tsx @@ -307,7 +307,32 @@ describe('uploader', () => { done(); }, 100); }); + + it('drag unaccepted type files with multiple false to upload will not trigger onStart ', done => { + const { container } = render(); + + const input = container.querySelector('input')!; + const files = [ + { + name: 'success.jpg', + toString() { + return this.name; + }, + }, + ]; + (files as any).item = (i: number) => files[i]; + const mockStart = jest.fn(); + handlers.onStart = mockStart; + fireEvent.drop(input, { + dataTransfer: { files }, + }); + setTimeout(() => { + expect(mockStart.mock.calls.length).toBe(0); + done(); + }, 100); + }); + it('drag files with multiple false', done => { const { container } = render(); const input = container.querySelector('input')!;