I am new to the React and Jest and I am trying to test my function where : I have a function :
handleSubmit = (e) => {
    this.changeData().then(() => {
        const payload = {
            somePayload: 'sample'
        };
        this.props.actions.authenticate(payload);
    });
};
and the jest function as :
it('test mock test', () => {
    const actionsMock = { authenticate: jest.fn() };
    const localWrapper = shallow(<SomeComponent actions={actionsMock} />);
    const instance = localWrapper.instance();
    jest.spyOn(instance, 'handleSubmit');
    instance.forceUpdate();
    localWrapper.find('.button').simulate('click');
    expect(actionsMock.authenticate).toHaveBeenCalledWith({somePayload: 'sample'});
});
So, In this case, when I click on the button it calls the handlesubmit function and eventually the this.props.actions.authenticate(payload); but when I assert the same in Jest it gives me error that function was never called. 
EDIT
As in the comment CJ Pointed: I see that my assertion is getting called even before the promise for changeData resolved. So, How I can I make my assertion wait till the promise gets resolved?
 
    