Я думаю, что нашел решение, go к концу вопроса
У меня есть простой тест с жасминовыми шариками, и я получаю эту ошибку, и я не знать, что происходит. Есть идеи?
Ожидается, что $ [0] .notification.kind = 'E' равно 'N'.
Ожидается $ [0] .notification.value = не определено равным [].
Ожидается $ [0] .notification.error = TypeError: Невозможно прочитать свойства 'пулов' неопределенных в равные неопределенным.
Ожидаемые $ [0] .notification.hasValue = false равно true.
pool-management.component.ts
@Component({
selector: 'app-pool-list',
templateUrl: './pool-list.component.html',
styleUrls: ['./pool-list.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class PoolListComponent implements OnInit {
pools$ = this.store.pipe(select(selectPools));
constructor(private store: Store<fromPoolManagement.State>) { }
addPool(): void {
this.store.dispatch(PoolManagementActions.addPool({lot: 'XXX', user: 'XYZ', cutDate: new Date().toISOString()}));
}
ngOnInit(): void {
this.store.dispatch(PoolManagementActions.getPools());
}
}
pool-management.selectors.ts
export const poolManagementSelector = createFeatureSelector('poolManagement');
export const selectPools = createSelector(
poolManagementSelector,
(state: State) => state.pools
);
pool-list.component.spe c .ts
fdescribe('PoolListComponent', () => {
let component: PoolListComponent;
let fixture: ComponentFixture<PoolListComponent>;
let mockStore: MockStore<fromPoolManagement.State>;
beforeEach(() => {
const initialState = { pools: [] } as fromPoolManagement.State;
TestBed.configureTestingModule({
declarations: [PoolListComponent],
providers: [provideMockStore({ initialState })],
})
.compileComponents();
fixture = TestBed.createComponent(PoolListComponent);
component = fixture.componentInstance;
mockStore = TestBed.get(Store);
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
it('should work, but this test is not working', () => {
const expected = cold('a', { a: []});
expect(component.pools$).toBeObservable(expected);
});
afterEach(() => {
fixture.destroy();
});
});
console.log («ожидается», ожидается);