如何使用 Auth api 和 state inside 测试 useEffect
How to test useEffect with Auth api and state inside
useEffect(()=>{
Auth.currentAuthenticatedUser().then((user) => {
setUser(user)
setIsLoading(false)
if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {
navigate('/ForceChangePassword')
}
else{
navigate('/App')
}
}).catch(error => {
console.log('isCurrentAuthenticatedUser- ',error)
setUser(null)
setIsLoading(false)
})
});
我们可以简单地模拟 Auth.currentAuthenticatedUser() 部分。
例如:-
Auth.currentAuthenticatedUser = jest.fn().mockImplementation(()=>Promise.resolve({challengeName: 'NEW_PASSWORD_REQUIRED'}))
如果有人想覆盖 catch 块,那么:-
Auth.currentAuthenticatedUser = jest.fn().mockImplementation(()=>Promise.reject())
useEffect(()=>{
Auth.currentAuthenticatedUser().then((user) => {
setUser(user)
setIsLoading(false)
if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {
navigate('/ForceChangePassword')
}
else{
navigate('/App')
}
}).catch(error => {
console.log('isCurrentAuthenticatedUser- ',error)
setUser(null)
setIsLoading(false)
})
});
我们可以简单地模拟 Auth.currentAuthenticatedUser() 部分。 例如:-
Auth.currentAuthenticatedUser = jest.fn().mockImplementation(()=>Promise.resolve({challengeName: 'NEW_PASSWORD_REQUIRED'}))
如果有人想覆盖 catch 块,那么:-
Auth.currentAuthenticatedUser = jest.fn().mockImplementation(()=>Promise.reject())