Étant donné un élément qui font une connexion ...test valeur d'état après la promesse résolue
onSubmit(e) {
e.preventDefault();
const { userStore, data } = this.props;
this.setState({isLogin: true});
const promise = userStore.login(data);
promise.then(() => {
this.setState({isLogin: false});
})
}
Comment puis-je créer un test qui valident si l'état isLogin est faux après la promesse est résolu?
Jusqu'à présent, j'ai ..
it('resolved submit should set isLogin to false',() => {
mockApi.onPost('/authenticate').reply(200);
const userStore = new UserStore();
let fromPromiseLogin;
userStore.login = jest.fn()
.mockImplementationOnce((data) => {
fromPromiseLogin = userStore.login(data);
return fromPromiseLogin;
});
const wrapper = mount(
<FormLogin userStore={userStore} />,
);
wrapper.find('form').simulate('submit');
// HOW CAN I WAIT/OR CALLBACK FOR THE PROMISE ? I TRIED >
whenWithTimeout(
() => fromPromiseLogin && fromPromiseLogin.state !== PENDING,
() => expect(wrapper.state().isLogin).toBeFalsy(),
);
});
Mais une exeption
[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: 'Reaction[[email protected]] TypeError: Cannot read property 'state' of undefined