import expect from 'expect'; import Immutable from 'immutable'; import { authenticating, authenticate, authError } from '../../src/actions/auth'; import { auth } from '../../src/reducers/auth'; describe('auth', () => { it('should handle an empty state', () => { expect( auth(undefined, {}) ).toEqual( null ); }); it('should handle an authentication request', () => { expect( auth(undefined, authenticating()) ).toEqual( Immutable.Map({ isFetching: true }) ); }); it('should handle authentication', () => { expect( auth(undefined, authenticate({ email: 'joe@example.com' })) ).toEqual( Immutable.fromJS({ user: { email: 'joe@example.com' } }) ); }); it('should handle an authentication error', () => { expect( auth(undefined, authError(new Error('Bad credentials'))) ).toEqual( Immutable.Map({ error: 'Error: Bad credentials' }) ); }); });