@@ -192,10 +192,30 @@ test.each([
192192 } ,
193193)
194194
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+ ]
198203
204+ userEvent . upload ( element , [ ] )
205+ expect ( eventWasFired ( 'input' ) ) . toBe ( false )
199206 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 )
200215 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 )
201221} )
0 commit comments