@@ -488,6 +488,42 @@ describe('uploader', () => {
488488
489489 fireEvent . change ( input , { target : { files } } ) ;
490490 } ) ;
491+
492+ it ( 'should call preventDefault when paste contains files' , ( ) => {
493+ const { container } = render ( < Upload { ...props } pastable /> ) ;
494+ const input = container . querySelector ( 'input' ) ! ;
495+
496+ const files = [ new File ( [ '' ] , 'test.png' , { type : 'image/png' } ) ] ;
497+
498+ const preventDefaultSpy = jest . spyOn ( Event . prototype , 'preventDefault' ) ;
499+
500+ fireEvent . paste ( input , {
501+ clipboardData : {
502+ items : [ { kind : 'file' } ] ,
503+ files,
504+ } ,
505+ } ) ;
506+
507+ expect ( preventDefaultSpy ) . toHaveBeenCalledTimes ( 1 ) ;
508+ preventDefaultSpy . mockRestore ( ) ;
509+ } ) ;
510+
511+ it ( 'should not call preventDefault when paste contains no files' , ( ) => {
512+ const { container } = render ( < Upload { ...props } pastable /> ) ;
513+ const input = container . querySelector ( 'input' ) ! ;
514+
515+ const preventDefaultSpy = jest . spyOn ( Event . prototype , 'preventDefault' ) ;
516+
517+ fireEvent . paste ( input , {
518+ clipboardData : {
519+ items : [ { kind : 'string' } ] ,
520+ files : [ ] ,
521+ } ,
522+ } ) ;
523+
524+ expect ( preventDefaultSpy ) . toHaveBeenCalledTimes ( 0 ) ;
525+ preventDefaultSpy . mockRestore ( ) ;
526+ } ) ;
491527 } ) ;
492528
493529 describe ( 'directory uploader' , ( ) => {
0 commit comments