Home Reference Source Repository

src/reducers/test/admin_spec.js

/*!
 * Codefolio
 * Copyright(c) 2016 MSMFSD
 * MIT Licensed
 */
import { expect } from 'chai'
import reducer from '../admin'
import appInitialState from '../../store/initial-state'

/**
 * TEST ADMIN REDUCER
 */
describe('admin reducer', () => {
  //initial state
  const initialState = appInitialState.admin
  // EDIT_ADMIN
  it('Handles EDIT_ADMIN', () => {
    const newState = reducer(initialState, {
      type: 'EDIT_ADMIN',
      payload: {
        editAdminLoading: true
      }
    })
    expect(newState).to.eql(Object.assign({}, initialState, {
      editAdminLoading: true
    }))
  })
  // EDIT_ADMIN_SUCCESS
  it('Handles EDIT_ADMIN_SUCCESS', () => {
    const newState = reducer(initialState, {
      type: 'EDIT_ADMIN_SUCCESS',
      payload: {
        editAdminLoading: false,
        editAdminErrMessage: null,
        editAdminError: null
      }
    })
    expect(newState).to.eql(Object.assign({}, initialState, {
      editAdminLoading: false,
      editAdminErrMessage: null,
      editAdminError: null
    }))
  })
  // EDIT_ADMIN_FAIL
  it('Handles EDIT_ADMIN_FAIL', () => {
    const error = 'Admin Error'
    const newState = reducer(initialState, {
      type: 'EDIT_ADMIN_FAIL',
      payload: error
    })
    expect(newState).to.eql(Object.assign({}, initialState, {
      editAdminErrMessage: error,
      editAdminError: true,
      editAdminLoading: false
    }))
  })

})