без него (код закомментирован), но как только убираю комментарий даже при объявлении spyOn функции, то тест фейлится. Пытаюсь смотреть на store.dispatch:
fit('should update settings key', done => {
let latestSettings: any;
// const dispatchSpy = spyOn(store, 'dispatch'); // [1]
const userSettings = user.settings;
service.updateKey('key1', 'updated value');
// expect(dispatchSpy).not.toHaveBeenCalled();
service.settings$.pipe(last()).subscribe(settings => latestSettings = settings);
subs.add(service.state$.subscribe(state => {
if (state !== EntityState.Data) { return; }
userSettings['key1'] = 'updated value';
service.updateKey('key1', 'updated value');
service.settings$.pipe(last()).subscribe(settings => latestSettings = settings);
// expect(dispatchSpy).toHaveBeenCalledTimes(1);
// expect(dispatchSpy).toHaveBeenCalledWith(
// new SettingsUpdateAction(userSettings)
// );
// expect(latestSettings).toEqual(userSettings);
done();
}));
service.init();
// expect(dispatchSpy).toHaveBeenCalledTimes(1);
// expect(dispatchSpy).toHaveBeenCalledWith(new SettingsInitAction());
});
А с какой ошибкой падает? Попробуйте spyOn(...).and.callThrough()
Обсуждают сегодня