UNPKG

ignite-jhipster

Version:

A React Native boilerplate for JHipster apps.

53 lines (44 loc) 1.55 kB
import { put, take } from 'redux-saga/effects' import FixtureAPI from '../../../../app/shared/services/fixture-api' import { callApi } from '../../../../app/shared/sagas/call-api.saga' import { getAccount } from '../../../../app/shared/sagas/account.sagas' const stepper = (fn) => (mock) => fn.next(mock).value test('returns the response if authorized', () => { const apiCall = getAccount(FixtureAPI) const step = stepper(callApi(apiCall)) step() const response = FixtureAPI.getAccount(1) const account = { ok: true, status: 200, data: require('../../../../app/shared/fixtures/get-account.json') } expect(step(response)).toEqual(account) }) test('prompts for login if not authorized, then fails to relogin', () => { const apiCall = getAccount(FixtureAPI) const step = stepper(callApi(apiCall)) step() const account = { ok: true, status: 401, data: { 'message': 'Not Authorized' } } expect(step(account)).toEqual(put({ type: 'RELOGIN' })) expect(step()).toEqual(take(['RELOGIN_OK', 'RELOGIN_ABORT'])) expect(step({ type: 'RELOGIN_ABORT' })).toEqual(account) // }) test('prompts for login if not authorized, then succeeds to relogin', () => { const apiCall = getAccount(FixtureAPI) const step = stepper(callApi(apiCall)) step() const account = { ok: true, status: 401, data: { 'message': 'Not Authorized' } } expect(step(account)).toEqual(put({ type: 'RELOGIN' })) expect(step()).toEqual(take(['RELOGIN_OK', 'RELOGIN_ABORT'])) step({ type: 'RELOGIN_OK' }) })