Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- jest.mock('services/firebase', () => new Promise(resolve => resolve({
- signInWithEmailAndPassword: () => Promise.resolve({ getIdToken: 'abc123' }),
- getIdToken: () => jest.fn(),
- signOut: () => jest.fn()
- })));
- describe('login actions', () => {
- let store;
- beforeEach(() => {
- store = mockStore({});
- });
- it('signIn should call firebase', () => {
- const user = {
- email: 'first.last@yum.com',
- password: 'abd123'
- };
- return store.dispatch(signIn(user.email, user.password))
- .then(() => {
- console.log('TEST signIn SUCCESS');
- expect(mockSignIn).toHaveBeenCalled();
- expect(store.getActions()).toEqual({
- type: USER_ON_LOGGED_IN
- });
- })
- .catch((err) => {
- console.log('TEST signIn ERROR =>', err);
- });
- });
- // Sign in action
- export const signIn = (email, password, redirectUrl = ROUTEPATH_DEFAULT_PAGE) => (dispatch) => {
- dispatch({ type: USER_LOGIN_PENDING });
- return firebase
- .then((auth) => {
- console.log('auth =>', auth);
- return auth.signInWithEmailAndPassword(email, password);
- })
- .catch((e) => {
- console.error('actions/Login/signIn', e);
- // Register a new user
- if (e.code === LOGIN_USER_NOT_FOUND) {
- dispatch(push(ROUTEPATH_FORBIDDEN));
- dispatch(toggleNotification(true, e.message, 'error'));
- } else {
- dispatch(displayError(true, e.message));
- setTimeout(() => {
- dispatch(displayError(false, ''));
- }, 5000);
- throw e;
- }
- })
- // I can't seem to mock this correctly
- .then(res => res.getIdToken())
- .then((idToken) => {
- if (!idToken) {
- dispatch(displayError(true, 'Sorry, there was an issue with getting your token.'));
- }
- dispatch(onCheckAuth(email));
- dispatch(push(redirectUrl));
- });
- };
Add Comment
Please, Sign In to add comment