ReferenceError: ReadableStream не определен во время выполнения шуточных тестов - PullRequest
0 голосов
/ 23 мая 2019

Мое веб-приложение читает локальные файлы, используя пользовательский ReadableStream (для того, чтобы мне не требовался максимальный размер файла, поддерживаемый платформой), и оно отлично работает как для правильно отформатированных файлов, так и для файлов ошибок.Мое приложение построено с использованием React-Redux-Saga.

Сейчас я пытаюсь добавить ограниченные e2e тесты в мой код для проверки управления состоянием.Я проверяю, что при отправке redux действий состояние корректно обновляется.Я тестирую саги с использованием пакета redux-saga-tester.

Во время выполнения клиентских тестов jest, которые читают локальные файлы с использованием созданного мною ReadableStream, я получил ошибку ReferenceError: ReadableStream is not defined.Я понял, что в среде jsdom, используемой jest, отсутствует реализация ReadableStream.Затем я добавил пакет web-streams-polyfill, чтобы заполнить класс ReadableStream.

Теперь проверка файла проверки проходит, как в браузере:

test('Select and validate log file', async () => {
  const testFile = testFileBuilder.valid();
  storeTester.dispatch(fileSelected(testFile));
  await storeTester.waitFor(FILE_VALIDATED);
  const state = storeTester.getState().file;
  expect(state.fileValidated).toBeTruthy();
});

Моя проблема заключается в том, что при запуске второгоТест проверки с неверным файлом, тест проходит, но выводит на консоль сообщение об ошибке.

Тест:

test('Select an invalid file - JSON error', async () => {
    const testFile = testFileBuilder.errorJSON();
    storeTester.dispatch(fileSelected(testFile));
    await storeTester.waitFor(FILE_ERROR);
    const state = storeTester.getState().file;
    expect(state.fileValidated).toBeFalsy();
    expect(state.fileError).toBeTruthy();
  });

Ошибка, которая выводится на печать после успешного завершения теста:

e.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
    Error: Error: connect ECONNREFUSED 127.0.0.1:80
        at Object.dispatchError (/home/noams/dev/web/visual-log-viewer/client/node_modules/jsdom/lib/jsdom/living/xhr-utils.js:65:19)
        at Request.client.on.err (/home/noams/dev/web/visual-log-viewer/client/node_modules/jsdom/lib/jsdom/living/xmlhttprequest.js:676:20)
        at Request.emit (events.js:194:15)
        at Request.onRequestError (/home/noams/dev/web/visual-log-viewer/client/node_modules/request/request.js:881:8)
        at ClientRequest.emit (events.js:189:13)
        at Socket.socketErrorListener (_http_client.js:392:9)
        at Socket.emit (events.js:189:13)
        at emitErrorNT (internal/streams/destroy.js:82:8)
        at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
        at process._tickCallback (internal/process/next_tick.js:63:19) undefined

Любые последующие проверки файлов не пройдены.

Буду признателен за советы по решению этой проблемы.

...