Как я могу проверить Firebase signInWithEmailAndPassword? - PullRequest
2 голосов
/ 18 марта 2019

Я хочу проверить свои действия и посмотреть, был ли вызван диспетчер и шпион истории. Но это всегда заканчивается в catch (рассылка GET_ERRORS).

Это дает мне эту ошибку:

code: 'auth/network-request-failed',
message:  'A network error (such as timeout, interrupted connection or unreachable host) has occurred.'

Действие:

export const startLogin = ( { email, password } ) => {
    return ( dispatch ) => {
        dispatch( setAuthLoading() );

        return firebase
            .auth()
            .signInWithEmailAndPassword( email, password )
            .then( ( user ) => {  
                const userData = {
                    uid: user.uid,
                    name: user.displayName,
                    email: user.email
                }

                // This is what I want to test. If dispatch, history was called
                dispatch( setCurrentUser( userData ) );
                history.push( '/' );
            })
            .catch( ( err ) => {
                // It ends up everytime here, why?
                dispatch({
                    type: GET_ERRORS,
                    payload: err 
                });

                dispatch( clearAuthLoading() );
            });
    };
};

Тест:

test( 'should start login with correct data', ( done ) => {
    const pushSpy = jest.spyOn( history, 'push' );
    const store = createMockStore({});
    const name = 'Josh';
    const loginData = {
        email: 'test@gmail.com',
        password: '123456password'
    };  

    store.dispatch( startLogin( loginData ) ).then(() => {
        const actions = store.getActions();

        expect( actions[0] ).toEqual({
            type: SET_CURRENT_USER,
            user: {
                name,
                email: loginData,
                psasword: loginData.password
            }
        });

        expect( pushSpy ).toHaveBeenLastCalledWith( '/' );

        done();
    });
});

Может ли это быть проблемой безопасности пожарной базы? Я попробовал все, но это все еще заканчивается ловушкой.

Спасибо

...