Issue
I am trying to mock the auth module from the npm library @react-native-firebase/auth however, I keep getting this error back. I have tried mocking it below but obviously it must be incorrect I am just unsure on what is incorrect.
TypeError: Cannot read property 'credential' of undefined
jest.mock('@react-native-firebase/auth', () => ({
auth: {
GoogleAuthProvider: {
credential: jest.fn().mockReturnValue('123'),
},
},
}));
jest.mock('@react-native-community/google-signin', () => ({
GoogleSignin: {
signIn: jest.fn().mockReturnValue('123'),
},
}));
import auth from '@react-native-firebase/auth';
import {GoogleSignin} from '@react-native-community/google-signin';
export const GoogleLogin = async function (): Promise<void | string> {
// Get the users ID token
const {idToken} = await GoogleSignin.signIn();
// Create a Google credential with the token
const googleCredential = auth.GoogleAuthProvider.credential(idToken);
try {
auth().signInWithCredential(googleCredential);
} catch (e) {
console.log(e);
}
};
Solution
You are mocking @react-native-firebase/auth as if it exported firebase (where the auth namespace is accessed as firebase.auth), but you should be mocking it as if it exported the auth namespace directly.
In your current mock, you have defined auth.auth.GoogleAuthProvider.credential instead of auth.GoogleAuthProvider.credential.
jest.mock('@react-native-firebase/auth', () => ({
GoogleAuthProvider: {
credential: jest.fn().mockReturnValue('123'),
},
}));
Answered By - samthecodingman
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.