@@ -18,6 +18,7 @@ import { UiDragAndDropFileDirective } from './ui-drag-and-drop-file.directive';
18
18
[fileType]="fileType"
19
19
[fileClearRef]="clearRef"
20
20
[disabled]="disabled"
21
+ [multiple]="multiple"
21
22
(fileClear)="onFileClear()"
22
23
(fileChange)="onFileChange($event)">
23
24
Test
@@ -30,6 +31,7 @@ class TestDragAndDropFileComponent {
30
31
public fileType = '.txt' ;
31
32
public files ?: File [ ] ;
32
33
public disabled = false ;
34
+ public multiple = false ;
33
35
34
36
onFileChange ( files : FileList ) {
35
37
this . files = Array . from ( files ) ;
@@ -159,6 +161,9 @@ describe('Directive: UiDragAndDropFileDirective', () => {
159
161
} ) ;
160
162
161
163
it ( 'should filter different file types' , ( ) => {
164
+ component . multiple = true ;
165
+ fixture . detectChanges ( ) ;
166
+
162
167
dropEvent . dataTransfer . files . add (
163
168
fakeFile ( component . fileType ) ,
164
169
fakeFile ( component . fileType ) ,
@@ -173,6 +178,17 @@ describe('Directive: UiDragAndDropFileDirective', () => {
173
178
expect ( component . files ) . toBeDefined ( ) ;
174
179
expect ( component . files ! . length ) . toBe ( 3 ) ;
175
180
} ) ;
181
+
182
+ it ( 'should NOT allow multiple files when multiple=false' , ( ) => {
183
+ dropEvent . dataTransfer . files . add (
184
+ fakeFile ( '.jpg' ) ,
185
+ fakeFile ( '.png' ) ,
186
+ ) ;
187
+
188
+ container . dispatchEvent ( dropEvent ) ;
189
+
190
+ expect ( component . files ) . toBeUndefined ( ) ;
191
+ } ) ;
176
192
} ) ;
177
193
178
194
describe ( 'via input' , ( ) => {
@@ -209,6 +225,9 @@ describe('Directive: UiDragAndDropFileDirective', () => {
209
225
} ) ;
210
226
211
227
it ( 'should filter different file types' , ( ) => {
228
+ component . multiple = true ;
229
+ fixture . detectChanges ( ) ;
230
+
212
231
targetElement . files . add (
213
232
fakeFile ( component . fileType ) ,
214
233
fakeFile ( component . fileType ) ,
0 commit comments