@@ -56,7 +56,26 @@ it('uses the DataTransfer {items} instead of {files} if it exists', async () =>
56
56
type : 'application/json'
57
57
} ) ;
58
58
const item = dataTransferItemFromFile ( mockFile ) ;
59
- const evt = dragEvtFromItems ( item ) ;
59
+ const evt = dragEvtFromFilesAndItems ( [ ] , [ item ] ) ;
60
+
61
+ const files = await fromEvent ( evt ) ;
62
+ expect ( files ) . toHaveLength ( 1 ) ;
63
+
64
+ const [ file ] = files ;
65
+
66
+ expect ( file . name ) . toBe ( mockFile . name ) ;
67
+ expect ( file . type ) . toBe ( mockFile . type ) ;
68
+ expect ( file . size ) . toBe ( mockFile . size ) ;
69
+ expect ( file . lastModified ) . toBe ( mockFile . lastModified ) ;
70
+ expect ( file . path ) . toBe ( name ) ;
71
+ } ) ;
72
+
73
+ it ( 'uses the DataTransfer {files} if {items} is empty' , async ( ) => {
74
+ const name = 'test.json' ;
75
+ const mockFile = createFile ( name , { ping : true } , {
76
+ type : 'application/json'
77
+ } ) ;
78
+ const evt = dragEvtFromFilesAndItems ( [ mockFile ] , [ ] ) ;
60
79
61
80
const files = await fromEvent ( evt ) ;
62
81
expect ( files ) . toHaveLength ( 1 ) ;
@@ -125,6 +144,12 @@ function dragEvtFromItems(...items: DataTransferItem[]): DragEvent {
125
144
return { dataTransfer : { items} } as any ;
126
145
}
127
146
147
+ function dragEvtFromFilesAndItems ( files : File [ ] , items : DataTransferItem [ ] ) : DragEvent {
148
+ return {
149
+ dataTransfer : { files, items}
150
+ } as any ;
151
+ }
152
+
128
153
function dataTransferItemFromFile ( file : File ) : DataTransferItem {
129
154
return {
130
155
kind : 'file' ,
0 commit comments