Я просто обновляюсь с angular 8 до angular 9, и у меня есть некоторые проблемы, которые я не совсем понимаю. Я видел несколько постов, которые похожи на мою проблему, но не помогают мне что-то решить (возможно, из-за меня, а не решения, данного другими)
Итак, проблема в том, когда я запускаю ng test У меня есть эта ошибка: ошибка TS2339: Свойство «полезная нагрузка» не существует для типа «Действие».
The problem is on the spy.calls.allArgs()[1][0].payload.user;
Это похоже на связь между setUser и шпионом. Call.allArgs больше не существует.
login.service.spe c .ts
it('should get token', () => {
const store = TestBed.inject(Store);
const spy = spyOn(store, 'dispatch').and.callThrough();
service.getToken('root', '', 'MY_DATABASE').subscribe(() => {
expect(spy).toHaveBeenCalled();
spy.calls.allArgs()[1][0]);
const user: User = spy.calls.allArgs()[1][0].payload.user;
expect(user.database).toBe('MY_DATABASE');
});
});
login.actions.ts
export class SetUser implements Action {
readonly type = LOGIN_ACTION_TYPES.SET_USER;
constructor(public payload: SetUserActionInterface) {}
}
interface SetUserActionInterface {
user: User;
}
Может кто-нибудь помочь мне понять, в чем проблема в моем коде, пожалуйста?