ngrx + тестирование мрамора + задержка - PullRequest
0 голосов
/ 28 ноября 2018

Допустим, у меня есть эффект

@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. 

1 Ответ

0 голосов
/ 02 декабря 2018

Если вы не хотите передавать планировщик с задержкой, вы также можете сделать следующее:

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 });
})
...