Как проверить FileReader, заключенный в обещание? - PullRequest
0 голосов
/ 29 мая 2020

Текущий код:

export const readFilePromise = file => {
  return new Promise((resolve, reject) => {
    let reader = new FileReader();
    reader.readAsDataURL(file);
    reader.onload = () => {
      resolve(reader.result);
    };
    reader.onerror = error => {
      reject(error);
    };
  });
};

Я могу протестировать метод загрузки

it('readFilePromise method', async () => {
    const fileContentsEncodedInHex = [
      '\x45\x6e\x63\x6f\x64\x65\x49\x6e\x48\x65\x78\x42\x65\x63\x61\x75\x73\x65\x42\x69\x6e\x61\x72\x79\x46\x69\x6c\x65\x73\x43\x6f\x6e\x74\x61\x69\x6e\x55\x6e\x70\x72\x69\x6e\x74\x61\x62\x6c\x65\x43\x68\x61\x72\x61\x63\x74\x65\x72\x73'
    ];
    const blob = new Blob(fileContentsEncodedInHex);
    const result = readFilePromise(blob);
    const output = await result;
    const expectedOutput =
      'data:;base64,RW5jb2RlSW5IZXhCZWNhdXNlQmluYXJ5RmlsZXNDb250YWluVW5wcmludGFibGVDaGFyYWN0ZXJz';
    expect(output).toEqual(expectedOutput);
  });

Интересно, как мне проверить onerror?

1 Ответ

0 голосов
/ 30 мая 2020

Если у вас было что-то вроде ниже из-за this

reader.onerror = () => {
  reject(reader.error);
};

Тогда должно работать следующее.

Просто заранее узнайте сообщение об ошибке для передачи пустого файла или ничего . Я просто хотел создать сценарий

 describe('Error Case', () => {
        it('should return error message for empty file', () => {
              const result = readFilePromise();
               const n = () => {};
               return result.then(n, (errorMessage) => {
                expect('your error message here').to.equal(errorMessage);
            });
        });
...