Тестирование callback-ов с помощью Jest

Не очень понимаю тестирование callback (не хуков!) в функциональных компонентах реакта. Использую Jest. В проекте часто встречается ситуация, когда в функциональном компоненте создается функция, которая как пропс прокидывается в другой компонент. Что делать, если в этой созданной функции меняется стейт? Получается компонент асинхронно обновляется и новое состояние невозможно получить из теста? Т.е., есть компонент:

const BackBtn = ({
      setSomeValueAction
    }) => {
  const [isActive, setActive] = useState(false);
    
  const applyButtonHandler = () => {
    setSomeValueAction(0) // выполнение этого параметра нужно проверить
    setActive(false); //меняет состояние
  };
  return (
    <div className='back-btn'>

      <div className='modeless-dialog'>
        <Dialog
          isActive={isActive}
          onApply={applyButtonHandler} //callback
          message='Example'
        />
      </div>
    </div>
  );
};

const actionCreator = {
  setSomeValueAction: actions.app.openOp,
};

export default connect(null, actionCreator)(BackBtn);

В тестах я вызываю внутреннюю функцию как пропс

wrapper.find(Dialog).prop('onApply')(); 

Но мок, созданный для setSomeValueAction, никогда не вызывается. Есть способ это протестировать?


Ответы (0 шт):