Я застрял в этой проблеме, и сейчас я не знаю, как ее решить или найти решение.
У меня есть услуга angular, которую я использую, чтобы получить дневную запись из списка покупок в моем магазине NGXS.
Однако это вызывает ошибку в тесте ng говоря «Невозможно прочесть свойство undefined для undefined»
Код в службе выглядит так, довольно просто.
getDataFromStore(daySelected: string): DailyShopList {
return this.store.selectSnapshot<DailyShopList>(
state => state.shoppingList.dailyEntries[daySelected] <--- issue is here
);
}
Если вы посмотрите на строка state => state.shoppingList.dailyEntries [daySelected] , здесь я получаю ошибку. Когда я удаляю [daySelected] с конца объекта, я не получаю ошибок.
Итак, в моем тестовом файле я попытался имитировать данные, как если бы они поступали из магазина. Но все равно выдает ошибку.
describe('ShoppingListService', () => {
let service: ShoppingListService;
const data = {
state: {
shoppingList: {
dailyEntries: {
mon: {},
tue: {},
},
},
},
};
beforeEach(() => {
TestBed.configureTestingModule({
imports: [
HttpClientTestingModule,
NgxsModule.forRoot([MyNGXSstate]),
],
});
service = TestBed.inject(ShoppingListService);
const store: Store = TestBed.get(Store);
spyOn(store, 'selectSnapshot').and.returnValue(data); // trying to mock data from store
});
it('should be created', () => {
expect(service).toBeTruthy();
});
});
Что мне не хватает?
Спасибо.