From 726f144cc162a0a12d5175d1585e510bf107d1e4 Mon Sep 17 00:00:00 2001 From: Philipp Fritsche Date: Thu, 29 Apr 2021 09:55:38 +0200 Subject: [PATCH 1/2] fix(upload): apply changeInit correctly --- src/upload.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/upload.ts b/src/upload.ts index 04a79bb7..5837ae26 100644 --- a/src/upload.ts +++ b/src/upload.ts @@ -6,7 +6,7 @@ import {isDisabled, isElementType} from './utils' interface uploadInit { clickInit?: MouseEventInit - changeInit?: Event + changeInit?: EventInit } interface uploadOptions { @@ -74,13 +74,12 @@ function upload( bubbles: true, cancelable: false, composed: true, - ...init, }), ) fireEvent.change(input, { target: {files: inputFiles}, - ...init, + ...init?.changeInit, }) } From c5ee759279c9125d33fdbbed413e4aa3cb34602e Mon Sep 17 00:00:00 2001 From: Philipp Fritsche Date: Thu, 29 Apr 2021 10:10:49 +0200 Subject: [PATCH 2/2] test: apply init options --- src/__tests__/upload.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/__tests__/upload.js b/src/__tests__/upload.js index f57c116b..37640cf3 100644 --- a/src/__tests__/upload.js +++ b/src/__tests__/upload.js @@ -251,3 +251,15 @@ test('throw error if trying to use upload on an invalid element', () => { `"The associated INPUT element does not accept file uploads"`, ) }) + +test('apply init options', () => { + const {element, getEvents} = setup('') + + userEvent.upload(element, new File([], 'hello.png'), { + clickInit: {shiftKey: true}, + changeInit: {cancelable: true}, + }) + + expect(getEvents('click')[0]).toHaveProperty('shiftKey', true) + expect(getEvents('change')[0]).toHaveProperty('cancelable', true) +})