Угловое модульное тестирование для события Drag с файлами - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть компонент, в который вы перетаскиваете некоторые файлы, и если длина файла files.length больше единицы, вызывается метод.

Итак, для тестирования я создал const event = new DragEvent(), а затем попытался установить event.dataTransfer.files = new FileList(), но это свойство доступно только для чтения. Затем я попытался создать новое DragEvent, передав значение файла [и все остальное, что требуется] в конструктор DragEvent, но затем я получил Illegal constructor error.

Я создал новый класс MyDragEvent, который расширяется от DragEvent, но затем я снова получаю Illegal constructor error.

Есть идеи, как это проверить?

P.S .: Это нерабочий код:

it('should call upload method when file are dragged', async(() => {
    spyOn(component, 'onFilesAdded');

    const event = new Test({
      dataTransfer: {
        types: [],
        effectAllowed: '',
        items: new DataTransferItemList(),
        dropEffect: '',
        files: new FileList(),
        getData: (function(ostring) {
          return ostring;
        })(),
        clearData: (function(ostring) {
          return ostring;
        })(),
        setData: (function(string1, string2) {
          return string1;
        })(),
        setDragImage: (function(ostring, number1, number2) {
          return ostring;
        })()
      }
    });
    component.onDrop(event);

    expect(component.onFilesAdded).toHaveBeenCalled();
  }));
...