Тестовый пример для 100% покрытия - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу протестировать событие onclick в IconButton и вызвать соответствующую функцию. Я добавил тестовый пример, но так как состояние задано в этой функции (setOpen), я получаю сообщение об ошибке «setOpen не определен». Может ли кто-нибудь помочь мне в написании теста для этого? Я использую Jest and Enzyme

 const CardData = ({ customerData, user, setOpen, cardType, templates, customerId, handleBlur }) => {
      const [, setOpenUpdateCustomer] = React.useState(false);
      function handleClickOpenUpdateCustomerDialog() {
        setOpenUpdateCustomer(true);
        setOpen(true);
      }
      return (
                  <Grid item xs={3} className="text-right">
                    <IconButton
                      aria-label="edit"
                      className="edit"
                      onClick={handleClickOpenUpdateCustomerDialog}
                      disabled={user.type === 'super_admin' || user.includeComerchant}
                    >
                      <EditIcon fontSize="small" />
                    </IconButton>
                  </Grid>
      );
    };
    export default CardData;

Контрольный пример:

const handleClickOpenUpdateCustomerDialog = jest.fn();
const wrapper = shallow(<CardData user="df" cardType= 'customerDetails' handleClickOpenUpdateCustomerDialog={handleClickOpenUpdateCustomerDialog}/>);
wrapper.find('.edit').at(0).simulate('click');
expect(handleClickOpenUpdateCustomerDialog).toHaveBeenCalled();
...