Как проверить анонимные функции? - PullRequest
0 голосов
/ 28 марта 2019

У меня в эпосе есть следующее:

mergeMap(result => concat(
  of(fetchDone(result)),
  of(dispatchActions(payload))
))

А действия:

const fetchDone = result => ({ type: "FETCH_DONE", payload: result });

function dispatchActions(payload) {
  return dispatch => {
     dispatch(doStuff(payload));
     ...
  };
}

Проблема в моем тесте с использованием шариков, мне нужно иметь возможность проверить анонимную функцию, потому что dispatchActions считается анонимным. Как мне это сделать?

const values = {
  ...
  b: { type: "FETCH_DONE", payload: expected },
  c: NEEDS TO BE ANONYMOUS
};

...
const output$ = fetchApi(action$, state$);

// This fails due to the anonymous function
expectObservable(output$).toBe('---(bc)--', values);

1 Ответ

0 голосов
/ 28 марта 2019

В качестве обходного пути я делаю:

function dispatchActions(payload) {
  if (payload.callDispatches) {
    return dispatch => {
      dispatch(doStuff(payload));
      ...
    };
  }
  return { type: "SOME_TYPE" };
}

Затем в модульном тесте я просто проверяю против 2-го возврата.И тест if-condition можно просто выполнить в отдельном тесте вне мрамора.

Это не идеально, но пока решает проблему.Должен быть какой-то способ проверить redux-thunk с использованием шариков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...