Я пытаюсь протестировать эффекты ngrx в проекте Angular 6, всегда получаю ошибку:
Expected $[0].notification.kind = 'C' to equal 'N'.
Expected $[0].notification.hasValue = false to equal true.
Я попробовал этот пост https://brianflove.com/2018-06-28/ngrx-testing-effects и тот, что находится в документации ngrx. Есть ли какие-то требования для тестирования эффектов с ngrx 6? Ошибка для меня недостаточно значима. Может у кого-то есть полный пример как сделать?
Вот мой эффект:
initData$: Observable<Action> = this.actions$.pipe(
ofType(INIT_DATA_ACTION),
switchMap((data: any) => {
return this.store.pipe(select(getAppDataResolved)).take(1).switchMap((resolved: any) => {
if (!resolved) {
return this.dataService.getInitData(this.loginService.user.id).switchMap((response: any) => {
return Observable.from([
new ItemsInitDataAction(response.userItems),
new InitDataResolvedAction(),
]);
});
} else {
return Observable.from([
new InitDataResolvedAction(),
]);
}
});
}),
);
и моя проверка кармы:
it('should be created', () => {
expect(effects).toBeTruthy(); // got success
});
it('basic test', () => { // got error
const action = new appAction.InitDataAction();
const outcome = new appAction.InitDataResolvedAction();
actions.stream = hot('a', { a: action });
const expected = hot('a', { b: outcome });
expect(effects.initData$).toBeObservable(expected);
});
});
Заранее спасибо за помощь ;-)