ngrx + тестирование мрамора + задержка
Допустим, у меня есть эффект
@Effect()
someEffect$ = this.actions$.pipe(ofType(X), switchMap(() =>
of(Y).pipe(delay(3000)))
Как должен выглядеть мраморный тест?
const action = new X();
const result = new Y();
actions$.stream = hot('-x', { x: action });
const expected = cold('-y', { y: result }); // ? adding frames or 3s doesn't work
expect(effects.someEffect$).toBeObservable(expected);
Взамен я получаю
Expected $.lenght = 0 to equal 1.
0 ответов
Если вы не хотите передавать планировщик на задержку, вы также можете сделать следующее:
import { cold, hot, getTestScheduler } from "jasmine-marbles";
scheduler.run((helpers) => {
const action = new X();
const result = new Y();
actions$ = helpers.hot('-x', { x: action });
helpers.expectObservable(effects.someEffect$).toBe('- 3s y', { y: result });
})