Как протестировать эффект использования с помощью API аутентификации и состояния внутри

#reactjs #react-hooks #jestjs #react-testing-library

#реагирует на #реагируют-крючки #jestjs #реагировать-тестирование-библиотека

Вопрос:

 useEffect(()=gt;{  Auth.currentAuthenticatedUser().then((user) =gt; {  setUser(user)  setIsLoading(false)  if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {  navigate('/ForceChangePassword')  }  else{  navigate('/App')  }  }).catch(error =gt; {  console.log('isCurrentAuthenticatedUser- ',error)  setUser(null)  setIsLoading(false)  })  });  

Комментарии:

1. не могли бы вы уточнить вопрос немного подробнее?

2. @Маник Кумар вы хотите проверить состояние пользователя?

3. @Jithin на самом деле я хочу сказать, что я не могу охватить часть авторизации. Пожалуйста, дайте мне знать, как я могу это сделать?

4. @Gregfan итак, как я могу покрыть эту часть аутентификации и после части состояния, которые являются setUser и setIsLoading, хотя я могу покрыть ее блок catch

5. Что вы хотите осветить в части auth?

Ответ №1:

Мы можем просто издеваться над частью Auth.currentAuthenticatedUser (). Например:-

 Auth.currentAuthenticatedUser = jest.fn().mockImplementation(()=gt;Promise.resolve({challengeName: 'NEW_PASSWORD_REQUIRED'}))   

Если кто — то хочет закрыть блок catch, то:-

 Auth.currentAuthenticatedUser = jest.fn().mockImplementation(()=gt;Promise.reject())