Как я могу сделать тест в Redux-Sagas - PullRequest
0 голосов
/ 19 января 2019

Я использую 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.

Кто-нибудь знает, как я мог решить эту проблему? Я пытался исправить это весь день, но это не работает.

1 Ответ

0 голосов
/ 19 января 2019
expect(JSON.stringify(result)).toEqual(
  JSON.stringify(call([authMock, authFunction]))
);
...