import expect from 'expect'; import Immutable from 'immutable'; import { configLoaded, configLoading, configFailed } from '../../src/actions/config'; import { config } from '../../src/reducers/config'; describe('config', () => { it('should handle an empty state', () => { expect( config(undefined, {}) ).toEqual( null ); }); it('should handle an update', () => { expect( config(Immutable.Map({'a': 'b', 'c': 'd'}), configLoaded({'a': 'changed', 'e': 'new'})) ).toEqual( Immutable.Map({'a': 'changed', 'e': 'new'}) ); }); it('should mark the config as loading', () => { expect( config(undefined, configLoading()) ).toEqual( Immutable.Map({isFetching: true}) ); }); it('should handle an error', () => { expect( config(Immutable.Map({isFetching: true}), configFailed(new Error('Config could not be loaded'))) ).toEqual( Immutable.Map({error: 'Error: Config could not be loaded'}) ); }); });