Проблема с handleSubmit
заключается в том, что он обрабатывает обещания как прославленные обратные вызовы.Нет необходимости передавать обратные вызовы then
и catch
.Он не возвращает обещание, поэтому не может быть прикован цепью.
Вот как это можно исправить:
const handleSubmit = (handleSuccess, handleErrors) => {
return signupAPI(user)
.then(handleSuccess)
.catch(handleErrors);
};
и
test('should call handleSuccess', async () => {
...
handleSubmit(handleSuccess, handleErrors);
await handleSubmit(handleSuccess, handleErrors);
expect(signupAPI).toHaveBeenCalled();
expect(handleSuccess).toHaveBeenCalled();
});
И вот как это можно правильно написать:
const handleSubmit = () => signupAPI(user)