Skip to content

Commit

Permalink
test(Login): success
Browse files Browse the repository at this point in the history
  • Loading branch information
plondon committed May 30, 2018
1 parent 98ac6ba commit c5d2073
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ export default ({ api, coreSagas }) => {
const login = function * (action) {
let { guid, sharedKey, password, code, mobileLogin } = action.payload
const safeParse = Either.try(JSON.parse)
let session = yield select(selectors.session.getSession(guid))
let session = yield select(selectors.session.getSession, guid)

try {
if (!session) { session = yield call(api.obtainSessionToken) }
Expand Down Expand Up @@ -256,6 +256,7 @@ export default ({ api, coreSagas }) => {

return {
login,
loginRoutineSaga,
mobileLogin,
register,
restore,
Expand Down
53 changes: 53 additions & 0 deletions packages/blockchain-wallet-v4-frontend/src/data/auth/sagas.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import { call, put, select } from 'redux-saga/effects'

import * as selectors from '../selectors.js'
import * as actions from '../actions.js'
import authSagas from './sagas'

describe('authSagas', () => {
let api = { obtainSessionToken: () => {} }
let coreSagas = { wallet: { fetchWalletSaga: () => {} } }

describe('*login', () => {
let { login, loginRoutineSaga } = authSagas({ api, coreSagas })
let payload = {guid: '123abc456def', password: 'blockchain', code: undefined, sharedKey: undefined, mobileLogin: undefined}
let gen = login({ payload })

it('should select getSession', () => {
expect(gen.next().value).toEqual(select(selectors.session.getSession, '123abc456def'))
})
it('should call obtainSessionToken', () => {
expect(gen.next().value).toEqual(call(api.obtainSessionToken))
})
it('should put saveSession', () => {
expect(gen.next('sessionToken').value).toEqual(put(actions.session.saveSession({'123abc456def': 'sessionToken'})))
})
it('should cache guid', () => {
expect(gen.next('123abc456def').value).toEqual(put(actions.cache.guidEntered('123abc456def')))
})
it('should put login loading', () => {
expect(gen.next().value).toEqual(put(actions.auth.loginLoading()))
})
it('should fetch wallet', () => {
const { guid, password, code, sharedKey } = payload
expect(gen.next().value).toEqual(call(coreSagas.wallet.fetchWalletSaga, { guid, password, code, sharedKey, session: 'sessionToken' }))
})
it('should call login routine', () => {
const { mobileLogin } = payload
expect(gen.next().value).toEqual(call(loginRoutineSaga, mobileLogin))
})
it('should put login success', () => {
expect(gen.next().value).toEqual(put(actions.auth.loginSuccess()))
})
describe('catch', () => {
let gen = login({ payload })
gen.next()
gen.next()
gen.next('sessionToken')
gen.next('123abc456def')
gen.next()
gen.next()
console.log(gen.throw(new Error()))
})
})
})

0 comments on commit c5d2073

Please sign in to comment.