Мое веб-приложение читает локальные файлы, используя пользовательский 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
Любые последующие проверки файлов не пройдены.
Буду признателен за советы по решению этой проблемы.