У меня есть компонент с кнопкой. При нажатии на кнопку делается HTTP-запрос:
this.tokensService.create(this.userInCreation).subscribe(nextCb, errorCb);
Как мне дождаться завершения этого запроса? Использование утилиты async
и fixture.whenStable
мне не помогает.
Например:
it('', async( async () => {
fixture.detectChanges();
appPage.loginButtonEl.click(); // XHR request is initiated here
fixture.detectChanges();
await fixture.whenStable();
// HTTP request is still pending here
}))
it('', async(async () => { ... }))
. Первыйasync
— это утилитаasync
, а второй — ключевое слово для асинхронности лямбда-функции. В противном случае записьawait
вызовет ошибку компиляции. - person Hero Wanders   schedule 04.01.2019spyOn(tokenService, 'create').and.returnValue(of(/*return value*/))
, чтобы он немедленно выдавался и завершался, что позволяло вам быстро протестировать. - person dmcgrandle   schedule 05.01.2019TokenService
, компонента, из которого вы его вызываете, и остальную часть вашего файла спецификации, пожалуйста? - person dmcgrandle   schedule 06.01.2019