У меня есть следующие наблюдаемые:
public ngAfterViewInit(): void {
fromEvent(this.showFeaturesButton.nativeElement, 'click').pipe(
takeUntil(this.ngUnsubscribe),
withLatestFrom(this.store.pipe(select(fromClientStorage.getSubscription)))
).subscribe(([_event, subscription]) => {
this.featureModal.open(FeatureListComponent, {
data: {
features: subscription.features
},
});
});
}
Я пытаюсь проверить, используя:
it('should call modal when feature button is clicked', () => {
const subscription: Subscription = ClientMock.getClient().subscription;
spyOn(instance['store'], 'pipe').and.returnValue(hot('-a', {a: subscription.features}));
spyOn(instance.featureModal, 'open');
instance.ngAfterViewInit();
instance.showFeaturesButton.nativeElement.click();
expect(instance.featureModal.open).toHaveBeenCalledWith(FeatureListComponent, {
data: {
features: subscription.features
}
});
});
Однако я никогда не нажимаю на подписку, которая открывает модальное окно.Если я удаляю withLatestFrom
вот так:
public ngAfterViewInit(): void {
fromEvent(this.showFeaturesButton.nativeElement, 'click').pipe(
takeUntil(this.ngUnsubscribe)
).subscribe(res) => {
this.featureModal.open(FeatureListComponent, {
data: {
features: res
},
});
});
}
Затем подписка удаляется, мне просто интересно, что мне не хватает с withLatestFrom