Я работаю над проектом Ionic / Angular и попытался переключиться с Karma на Jest для моего тестирования.
Следующий тест работал нормально до переключения:
import {TestBed, inject, async} from '@angular/core/testing';
import { TreasureTableService } from './treasure-table.service';
import {PapaParseModule} from 'ngx-papaparse';
import {HttpClientModule} from '@angular/common/http';
describe('TreasureTableService', () => {
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientModule, PapaParseModule]
});
});
beforeEach(inject([TreasureTableService], s => {
treasureTableService = s;
}));
it('should get treasure type list', async() => {
let result: string[] = await treasureTableService.getTreasureTypeList();
expect(result).toContain("A");
expect(result.length).toBe(33);
});
});
После того, как я переключился на Jest, я получил следующую ошибку:
console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
Error: Error: connect ECONNREFUSED 127.0.0.1:80
at Object.dispatchError (C:\Users\fhu\WebstormProjects\AcksAssistant\node_modules\jsdom\lib\jsdom\living\xhr-utils.js:65:19)
at Request.client.on.err (C:\Users\fhu\WebstormProjects\AcksAssistant\node_modules\jsdom\lib\jsdom\living\xmlhttprequest.js:676:20)
at emitOne (events.js:121:20)
at Request.emit (events.js:211:7)
at Request.onRequestError (C:\Users\fhu\WebstormProjects\AcksAssistant\node_modules\request\request.js:881:8)
at emitOne (events.js:116:13)
at ClientRequest.emit (events.js:211:7)
at Socket.socketErrorListener (_http_client.js:387:9)
Кто-нибудь понял, в чем проблема?
EDIT:
После того, как я перестал использовать HttpClientModule
и переключился на HttpClientTestingModule
Ошибка соединения исчезла, но теперь у меня проблема с асинхронным вызовом:
Timeout - Async callback was not invoked within the 5000ms timeout specified by jest.setTimeout.
95 | function createdPatchedSpec(OriginalSpec, registry) {
96 | function PatchedSpec(attrs) {
> 97 | OriginalSpec.apply(this, arguments);