Мне нужна ваша помощь:)
Я использовал угловые 7 и Rxjs. Для теста я использовал Jest.
У меня есть компонент, который использует MergeMap между двумя httpClient, вот так:
addPost() {
this.postService.createPost(post).pipe(
mergeMap( (response) => { return this.postService.getPost(response.headers.get('Location'));} )
).subscribe(
(post) => {
this.content =""; this.postService.addingPostToArray(post);
}, (error) => {
//todo
}
);
}
И мой почтовый сервис:
createPost(post:Post) {
return this.httpClient
.post('http://localhost:8080/posts', {post: post}, {observe: 'response'});
}
getPost(url: any) {
return this.httpClient.get<Post>(url);
}
И я создал тест для своего компонента следующим образом:
it('should test addPost OK', () => {
postService = TestBed.get(PostService);
spyOn(postService, 'createPost').and.returnValue(of('test'));
spyOn(postService, 'getPost').and.returnValue(of('test'));
component.addPost();
expect(postService.createPost).toHaveBeenCalled();
expect(postService.getPost).toHaveBeenCalled();
});
Но проблема в том, что мой getPost никогда не вызывается.
expect(spy).toHaveBeenCalled()
Expected spy to have been called, but it was not called.
131 |
132 | expect(postService.createPost).toHaveBeenCalled();
> 133 | expect(postService.getPost).toHaveBeenCalled();
Как я могу проверить объединенную карту?
Надеюсь, мои объяснения не слишком странные :) 1021 *
Спасибо за вашу помощь;)