UNPKG

react-formio-helper

Version:

Helper library for apps built with react and form.io.

164 lines (143 loc) 3.19 kB
import expect from 'expect'; import deepFreeze from 'deep-freeze'; import formReducer from '../src/reducers/form'; import { FORM_REQUEST, FORM_SUCCESS, FORM_FAILURE } from '../src/actions/form'; describe('Form Reducer', function() { it('Sets a default state', function(done) { const action = { type: 'None' }; const stateAfter = { src: '', name: '', isFetching: false, lastUpdated: 0, form: {}, error: '' }; deepFreeze(action); expect( formReducer(undefined, action) ).toEqual(stateAfter); done(); }); it('Sets isFetching on FORM_REQUEST', function(done) { const stateBefore = { src: '', name: '', isFetching: false, lastUpdated: 0, form: {} }; const action = { type: FORM_REQUEST, src: '', name: '' }; const stateAfter = { src: '', name: '', isFetching: true, lastUpdated: 0, form: {} }; deepFreeze(stateBefore); deepFreeze(action); expect( formReducer(stateBefore, action) ).toEqual(stateAfter); done(); }); it('Sets the src and name on FORM_REQUEST', function(done) { const stateBefore = { src: '', isFetching: false, lastUpdated: 0, form: {} }; const action = { type: FORM_REQUEST, src: 'https://examples.form.io/simple', name: 'simple' }; const stateAfter = { src: 'https://examples.form.io/simple', name: 'simple', isFetching: true, lastUpdated: 0, form: {} }; deepFreeze(stateBefore); deepFreeze(action); expect( formReducer(stateBefore, action) ).toEqual(stateAfter); done(); }); it('Sets the form definition on FORM_SUCCESS', function(done) { const stateBefore = { src: 'https://examples.form.io/simple', name: 'simple', isFetching: true, lastUpdated: 0, form: {}, error: 'Some old error' }; const action = { type: FORM_SUCCESS, form: { name: 'Test', components: [] } }; const stateAfter = { src: 'https://examples.form.io/simple', name: 'simple', isFetching: false, lastUpdated: 0, form: { name: 'Test', components: [] }, error: '' }; deepFreeze(stateBefore); deepFreeze(action); expect( formReducer(stateBefore, action) ).toEqual(stateAfter); done(); }); it('Sets the error on FORM_FAILURE', function(done) { const stateBefore = { src: 'https://examples.form.io/simple', name: 'simple', isFetching: true, lastUpdated: 0, form: {} }; const action = { type: FORM_FAILURE, error: 'Something failed' }; const stateAfter = { src: 'https://examples.form.io/simple', name: 'simple', isFetching: false, lastUpdated: 0, form: {}, isInvalid: true, error: 'Something failed' }; deepFreeze(stateBefore); deepFreeze(action); expect( formReducer(stateBefore, action) ).toEqual(stateAfter); done(); }); });