Протестировать FileReader при обработке ошибок

У меня есть следующая функция, которую я хотел бы проверить.

loadFromLocal(file:File) : Observable<any> {
    let content:string;
    const reader: FileReader = new FileReader();

    reader.readAsText(file);

    return new Observable<any>(observer => {
        reader.onloadend = ()=> {
            content = JSON.parse(reader.result as string);
            observer.next(content);
            observer.complete();
        };
        reader.onerror = (error):void => {
            observer.error(error);
        }
    })
}

onloadend я мог бы протестировать так:

it('should load local file',() => {
    const demoContent = '{"content":"example"}'l
    const demoFile = new File([demoConent],'file.json',{type: 'application/json'});

   service.loadFromLocal(demoFile).subscribe( res => {
        expect(res).toEqual(JSON.parse(demoContent));
    });
});

Мой вопрос в том, как я могу проверить его часть onerror? Я видел этот вопрос, но на него не было правильного ответа. Я попытался отправить null или undefined в функцию, но это вызвало исключение ранее и не было поймано в моей симуляции ошибочной части наблюдаемой


person PMO1948    schedule 20.01.2021    source источник
comment
Я добавил ответ на упомянутый вами вопрос. Основная идея состоит в том, чтобы смоделировать конструктор FileReader и отправить событие ошибки в метод чтения (readAsText в вашем случае).   -  person Lana    schedule 12.04.2021