@@ -192,10 +192,30 @@ test.each([
192
192
} ,
193
193
)
194
194
195
- test ( 'should not trigger input event for empty list' , ( ) => {
196
- const { element, eventWasFired} = setup ( '<input type="file"/>' )
197
- userEvent . upload ( element , [ ] )
195
+ test ( 'should not trigger input event when selected files are the same' , ( ) => {
196
+ const { element, eventWasFired, clearEventCalls} = setup (
197
+ '<input type="file" multiple/>' ,
198
+ )
199
+ const files = [
200
+ new File ( [ 'hello' ] , 'hello.png' , { type : 'image/png' } ) ,
201
+ new File ( [ 'there' ] , 'there.png' , { type : 'image/png' } ) ,
202
+ ]
198
203
204
+ userEvent . upload ( element , [ ] )
205
+ expect ( eventWasFired ( 'input' ) ) . toBe ( false )
199
206
expect ( element . files ) . toHaveLength ( 0 )
207
+
208
+ userEvent . upload ( element , files )
209
+ expect ( eventWasFired ( 'input' ) ) . toBe ( true )
210
+ expect ( element . files ) . toHaveLength ( 2 )
211
+
212
+ clearEventCalls ( )
213
+
214
+ userEvent . upload ( element , files )
200
215
expect ( eventWasFired ( 'input' ) ) . toBe ( false )
216
+ expect ( element . files ) . toHaveLength ( 2 )
217
+
218
+ userEvent . upload ( element , [ ] )
219
+ expect ( eventWasFired ( 'input' ) ) . toBe ( true )
220
+ expect ( element . files ) . toHaveLength ( 0 )
201
221
} )
0 commit comments