@fronter-up

Как должен выглядеть тест для action, react/redux?

Добрый день! Объясните пожалуйста как должен выглядеть тест для action react/redux? Для тестов использую jest + enzyme.
Вот сам action
export const openModal = (initData, id) => ({
  type: types.OPEN_MODAL,
  payload: {
    initData,
    id,
  },
});


Так пробую писать тест.

it('test openModal', () => {
    expect(actions.openModal({
      id: '1',
      initData: {
        name: 'Some name',
      },
    })).toEqual({
      type: types.OPEN_MODAL,
      payload: {
        id: '1',
          initData: {
            name: 'Some name',
        },
      },
    });
  });


выдает ошибки
id - undefined
плюс хочет, чтобы в пейлоад был еще один объект initData. Почему так?
Помогите пожалуйста как оно правильно должно быть, только начинаю с этим разбираться.
Спасибо!
  • Вопрос задан
  • 257 просмотров
Решения вопроса 1
rockon404
@rockon404 Куратор тега React
Frontend Developer
Исправленный вариант:
it('test openModal', () => {
    expect(actions.openModal({ name: 'Some name'}, '1')).toEqual({
      type: types.OPEN_MODAL,
      payload: {
        id: '1',
          initData: {
            name: 'Some name',
        },
      },
    });
  });


Вы вместо аргументов передавали в actionCreator объект action, который actionCreator должен на основе аргументов создавать и возвращать. В итоге он у вас возвращал:
{
  type: types.OPEN_MODAL,  // тут естественно значение
  payload: {
    id: undefined,
    initData: {
      id: '1',
      initData: {
        name: 'Some name',
      },
    },
  },
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы