File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -295,6 +295,26 @@ test('assigns dataTransfer properties', () => {
295295 expect ( spy . mock . calls [ 0 ] [ 0 ] ) . toHaveProperty ( 'dataTransfer.dropEffect' , 'move' )
296296} )
297297
298+ test ( 'assigns dataTransfer non-enumerable properties' , ( ) => {
299+ window . DataTransfer = function DataTransfer ( ) { }
300+ const node = document . createElement ( 'div' )
301+ const spy = jest . fn ( )
302+ const item = { } ;
303+ const dataTransfer = new window . DataTransfer ( ) ;
304+
305+ Object . defineProperty ( dataTransfer , 'items' , {
306+ value : [ item ] ,
307+ enumerable : false
308+ } )
309+ node . addEventListener ( 'drop' , spy )
310+ fireEvent . drop ( node , { dataTransfer} )
311+
312+ expect ( spy ) . toHaveBeenCalledTimes ( 1 )
313+ expect ( spy . mock . calls [ 0 ] [ 0 ] . dataTransfer . items ) . toHaveLength ( 1 )
314+
315+ delete window . DataTransfer
316+ } )
317+
298318test ( 'assigning the files property on dataTransfer' , ( ) => {
299319 const node = document . createElement ( 'div' )
300320 const file = new document . defaultView . File ( [ '(⌐□_□)' ] , 'chucknorris.png' , {
Original file line number Diff line number Diff line change @@ -71,7 +71,12 @@ function createEvent(
7171 /* istanbul ignore if */
7272 if ( typeof window . DataTransfer === 'function' ) {
7373 Object . defineProperty ( event , dataTransferKey , {
74- value : Object . assign ( new window . DataTransfer ( ) , dataTransferValue ) ,
74+ value : Object
75+ . getOwnPropertyNames ( dataTransferValue )
76+ . reduce ( ( acc , propName ) => {
77+ Object . defineProperty ( acc , propName , { value : dataTransferValue [ propName ] } ) ;
78+ return acc ;
79+ } , new window . DataTransfer ( ) )
7580 } )
7681 } else {
7782 Object . defineProperty ( event , dataTransferKey , {
You can’t perform that action at this time.
0 commit comments