it('should support drag drop, initiate upload', fakeAsync(() => {
jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true)
expect(component.fileIsOver).toBeFalsy()
- component.onDragOver(new Event('dragover') as DragEvent)
+ const overEvent = new Event('dragover') as DragEvent
+ ;(overEvent as any).dataTransfer = { types: ['Files'] }
+ component.onDragOver(overEvent)
tick(1)
fixture.detectChanges()
expect(component.fileIsOver).toBeTruthy()
const leaveSpy = jest.spyOn(component, 'onDragLeave')
jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true)
settingsService.globalDropzoneEnabled = true
- component.onDragOver(new Event('dragover') as DragEvent)
+ const overEvent = new Event('dragover') as DragEvent
+ ;(overEvent as any).dataTransfer = { types: ['Files'] }
+ component.onDragOver(overEvent)
tick(1)
expect(component.hidden).toBeFalsy()
expect(component.fileIsOver).toBeTruthy()
const leaveSpy = jest.spyOn(component, 'onDragLeave')
jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true)
settingsService.globalDropzoneEnabled = true
- component.onDragOver(new Event('dragover') as DragEvent)
+ const overEvent = new Event('dragover') as DragEvent
+ ;(overEvent as any).dataTransfer = { types: ['Files'] }
+ component.onDragOver(overEvent)
tick(1)
expect(component.hidden).toBeFalsy()
expect(component.fileIsOver).toBeTruthy()
@ViewChild('ngxFileDrop') ngxFileDrop: NgxFileDropComponent
- @HostListener('dragover', ['$event ']) onDragOver(event: DragEvent) {
- if (!this.dragDropEnabled) return
+ @HostListener('dragover', ['$event']) onDragOver(event: DragEvent) {
+ if (!this.dragDropEnabled || !event.dataTransfer?.types?.includes('Files'))
+ return
event.preventDefault()
event.stopImmediatePropagation()
this.settings.globalDropzoneActive = true