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', () => {
295
295
expect ( spy . mock . calls [ 0 ] [ 0 ] ) . toHaveProperty ( 'dataTransfer.dropEffect' , 'move' )
296
296
} )
297
297
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
+
298
318
test ( 'assigning the files property on dataTransfer' , ( ) => {
299
319
const node = document . createElement ( 'div' )
300
320
const file = new document . defaultView . File ( [ '(⌐□_□)' ] , 'chucknorris.png' , {
Original file line number Diff line number Diff line change @@ -71,7 +71,12 @@ function createEvent(
71
71
/* istanbul ignore if */
72
72
if ( typeof window . DataTransfer === 'function' ) {
73
73
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 ( ) )
75
80
} )
76
81
} else {
77
82
Object . defineProperty ( event , dataTransferKey , {
You can’t perform that action at this time.
0 commit comments