Мне нужно написать мраморный тест для моего пользовательского оператора, используемого в этом loadEpic
эпосе - это помогает мне избежать проблем, когда действие INITIALiZE
иногда отправляется поздно, и я получаю LOAD_FAILURE
:
loadEpic: Epic<ExamManagementAction, ExamManagementAction, RootState> = (
action$,
state$
) =>
action$.pipe(
filter(isActionOf(load)),
waitFor(state$),
switchMap(() =>
this.load(state$).pipe(
map(loadSuccess),
catchError(error => of(loadFailure({ error })))
)
)
);
и вот как я написал мой waitFor
оператор, который прекрасно работает:
const waitFor = <T>(
state$: Observable<RootState>
): OperatorFunction<T, T> => source$ =>
source$.pipe(
switchMap(value =>
state$.pipe(
filter(state => state.navigation.initialized),
take(1),
mapTo(value)
)
)
);
Можете ли вы помочь мне написать этот тест с rxjs-marbles/jest
или любым другим подходом? большое спасибо!