all files / src/__tests__/ reducer.reset.spec.js

100% Statements 19/19
100% Branches 4/4
100% Functions 5/5
100% Lines 8/8
6 statements, 1 function, 3 branches Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95                                                                                                                                                                               
import {reset} from '../actions'
 
const describeReset = (reducer, expect, {fromJS}) => () => {
  it('should reset values on reset on with previous state', () => {
    const state = reducer(fromJS({
      foo: {
        values: {
          myField: 'dirtyValue',
          myOtherField: 'otherDirtyValue'
        },
        initial: {
          myField: 'initialValue',
          myOtherField: 'otherInitialValue'
        },
        fields: {
          myField: {
            touched: true
          },
          myOtherField: {
            touched: true
          }
        }
      }
    }), {
      ...reset(),
      form: 'foo'
    })
    expect(state)
      .toEqualMap({
        foo: {
          values: {
            myField: 'initialValue',
            myOtherField: 'otherInitialValue'
          },
          initial: {
            myField: 'initialValue',
            myOtherField: 'otherInitialValue'
          }
        }
      })
  })
 
  it('should reset deep values on reset on with previous state', () => {
    const state = reducer(fromJS({
      foo: {
        values: {
          deepField: {
            myField: 'dirtyValue',
            myOtherField: 'otherDirtyValue'
          }
        },
        initial: {
          deepField: {
            myField: 'initialValue',
            myOtherField: 'otherInitialValue'
          }
        },
        fields: {
          deepField: {
            myField: {
              touched: true
            },
            myOtherField: {
              touched: true
            }
          }
        },
        active: 'myField'
      }
    }), {
      ...reset(),
      form: 'foo'
    })
    expect(state)
      .toEqualMap({
        foo: {
          values: {
            deepField: {
              myField: 'initialValue',
              myOtherField: 'otherInitialValue'
            }
          },
          initial: {
            deepField: {
              myField: 'initialValue',
              myOtherField: 'otherInitialValue'
            }
          }
        }
      })
  })
}
 
export default describeReset