Я использую Firebase, и поэтому я ставлю auth
в качестве инъекции зависимости. В моих сагах у меня есть этот код:
export function* isAuth(auth) {
try{
const wrapper = {
authFunction : () => auth.currentUser
}
const {authFunction} = wrapper
const user = yield call([wrapper, authFunction])
if (user !== null){
yield put(ActionCreator.authSuccess(user))
}
}catch({message}){
yield put(ActionCreator.authFailure(message))
}
}
и в моем файле теста у меня есть этот код:
describe('should test isAuth', () => {
const auth = {currentUser: {}}
const {currentUser} = auth
const authMock = {
authFunction: () => currentUser
}
const {authFunction} = authMock
const it = sagaHelper(isAuth(authMock))
it('should call api authFunction', result => {
expect(result).toEqual(call([authMock, authFunction]))
return {
user: undefined
}
})
it('should put authSuccess', result => {
expect(result).toEqual(put(ActionCreator.authSuccess(undefined)))
})
})
Это должно работать, потому что сага работает нормально, но появляется следующая ошибка:
should test isAuth › should call api authFunction
expect(received).toEqual(expected)
Expected value to equal:
{"@@redux-saga/IO": true, "CALL": {"args": [], "context": {"authFunction": [Function authFunction]}, "fn": [Function authFunction]}}
Received:
{"@@redux-saga/IO": true, "CALL": {"args": [], "context": {"authFunction": [Function authFunction]}, "fn": [Function authFunction]}}
Difference:
Compared values have no visual difference.
Кто-нибудь знает, как я мог решить эту проблему? Я пытался исправить это весь день, но это не работает.