Угловой тест ngrx с ошибкой броска шута `console.error node_modules / jsdom / lib / jsdom / virtual-console.js: 29` - PullRequest
0 голосов
/ 02 ноября 2019

Я делаю тестирование для моего ngrx/store с jestjs. Я получил результат тестирования. даже если возникла ошибка типа:

console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
    Error: Cross origin http://localhost forbidden
        at dispatchError (C:\722333\USD\Project\AOS.UI\NG-USD\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:60:19)
        at Object.validCORSHeaders (C:\722333\USD\Project\AOS.UI\NG-USD\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:72:5)
        at receiveResponse (C:\722333\USD\Project\AOS.UI\NG-USD\node_modules\jsdom\lib\jsdom\living\xmlhttprequest.js:842:21)
        at Request.<anonymous> (C:\722333\USD\Project\AOS.UI\NG-USD\node_modules\jsdom\lib\jsdom\living\xmlhttprequest.js:677:38)
        at Request.emit (events.js:203:13)
        at Request.onRequestResponse (C:\722333\USD\Project\AOS.UI\NG-USD\node_modules\request\request.js:1066:10)
        at ClientRequest.emit (events.js:203:13)
        at HTTPParser.parserOnIncomingClient [as onIncoming] (_http_client.js:575:27)
        at HTTPParser.parserOnHeadersComplete (_http_common.js:116:17)
        at TLSSocket.socketOnData (_http_client.js:449:22) undefined

Кто-нибудь поможет мне разобраться в этой проблеме? и как ее решить?

Заранее спасибо.

ОБНОВЛЕНИЕ: согласно совету Luctia, я исправил проблему cors. но получая ошибку вроде:

Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.Error: Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.

      at mapper (node_modules/jest-jasmine2/build/queueRunner.js:25:45)

нужно добавить какой-нибудь обходной путь для этого?

Ответы [ 2 ]

1 голос
/ 02 ноября 2019

Похоже, вы используете магазин и эффекты для теста. Я собираюсь предположить, что эффект сделает запрос http, вызывая эту проблему.

Вот почему я рекомендую смоделировать сервис:

{
  provide: GoogleBooksService,
  useValue: { searchBooks: jest.fn() },
}

См. Пример NgRx. Приложение для примера.

1 голос
/ 02 ноября 2019

Похоже, ваш браузер блокирует Cross-origin Read (CORB). Взгляните на эту статью. Надеюсь, это поможет!

...