Как смоделировать данные состояния для передачи в функцию? - PullRequest
0 голосов
/ 11 апреля 2020

Я пытаюсь проверить функцию, которой передаются данные, чтобы обновить состояние с помощью Jest и Enzyme, но не уверен, как ссылаться на значения в массиве событий? Я хочу иметь возможность доступа к идентификатору, событию и длине, но кажется, что event.id, event.eventname event.length не работают.

it("should update state properties using updateProperties()", () => {
  const event = [
    {
      id: 1,
      eventname: "Coachella",
      length: "7 days
    },
  ];
  const wrapper = shallow(<EditEvent event={event} />);
  wrapper.instance().updateProperties(event);
  expect(wrapper.state()).toEqual({
      id: 1,
      eventname: "Coachella",
      length: "7 days
  });

});

И вот функция updateProperties, которую я тестирую

updateProperties(event) {
     this.setState({
       id: event.id
       eventname: event.eventname
       length: event.length
     });
 }

Я просмотрел другие посты переполнения стека и документацию, но не нашел никакой информации, относящейся к этому. Любая помощь будет отличной

1 Ответ

0 голосов
/ 12 апреля 2020

В вашем тесте вы передаете неверный аргумент вашему компоненту updateProperties: фактически метод ожидает, что event будет объектом, но вы передаете массив в вашем тесте.

 const event = [
    {
      id: 1,
      eventname: "Coachella",
      length: "7 days
    },
  ];

Вам нужно только передать объект, нет [...]:

const event = { 
  id: 1, 
  eventname: "Coachella", 
  length: "7 days" 
} 

, и ваш тест пройдет

...