I'm noob at front-end dev, but try to write tests for project. Also, I'm using redux-saga and jest for testing btw, I have saga:
export function* setAuthorizeCode(action) {
try {
let response = yield call(Api.token.getToken, action.payload.authorizeCode);
yield put(appActions.setAccessToken(response.data.access_token));
yield put(appActions.setIdToken(response.data.id_token));
const accessToken = yield select((state) => appSelectors.getAccessToken(state.app));
const idToken = yield select((state) => appSelectors.getIdToken(state.app));
response = yield call(Api.user.getUser, accessToken, idToken);
yield put(appActions.setUser(response.data));
} catch (error) {
console.log('Error: ', error);
}
}
function* setAuhtorizeCodeFlow () {
yield takeLatest(appActions.SET_AUTHORIZE_CODE, setAuthorizeCode);
}
export default function* authentication() {
yield all([
setAuhtorizeCodeFlow()
]);
}`
And I'm write this test for this:
test('TESTING SAGAS', function(t) {
const gen = setAuthorizeCode()
let next = gen.next(appActions.setAuthorizeCode())
t.deepEqual(next.value, call(Api.token.getToken), 'must yield api.getToken')`
next = gen.next(accessToken)
t.deepEqual(next.value, put(appActions.setAccessToken(accessToken)), 'must yield action appActions.setAccessToken')
next = gen.next(idToken)
t.deepEqual(next.value, put(appActions.setIdToken(idToken)), 'must yield action appActions.setIdToken')
next = gen.next()
t.deepEqual(next.value, select(accessToken), 'must select accessToken')
next = gen.next()
t.deepEqual(next.value, select(idToken), 'must select idToken')
next = gen.next(Api.user.getUser())
t.deepEqual(next.value, call(Api.user.getUser), 'must yield api.getUser')
next = gen.next(setUser)
t.deepEqual(next.value, put(appActions.setUser(setUser)), 'must yield appActions.setUser')
t.end()
})
I realy don't know what is wrong But it's doesn't work, please I need some help, what am I doing wrong?
Aucun commentaire:
Enregistrer un commentaire