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

100% Statements 22/22
100% Branches 4/4
100% Functions 6/6
100% Lines 11/11
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                                                                                                                                                                       
import {focus} from '../actions'
 
const describeFocus = (reducer, expect, {fromJS}) => () => {
  it('should set visited on focus and update active with no previous state', () => {
    const state = reducer(undefined, {
      ...focus(),
      form: 'foo',
      field: 'myField'
    })
    expect(state)
      .toEqualMap({
        foo: {
          fields: {
            myField: {
              visited: true,
              active: true
            }
          },
          active: 'myField'
        }
      })
  })
 
  it('should set visited on focus and update active on deep field with no previous state', () => {
    const state = reducer(undefined, {
      ...focus(),
      form: 'foo',
      field: 'myField.subField'
    })
    expect(state)
      .toEqualMap({
        foo: {
          fields: {
            myField: {
              subField: {
                visited: true,
                active: true
              }
            }
          },
          active: 'myField.subField'
        }
      })
  })
 
  it('should set visited on focus and update current with previous state', () => {
    const state = reducer(fromJS({
      foo: {
        values: {
          myField: 'initialValue',
        },
        initial: {
          myField: 'initialValue'
        },
        fields: {
          myField: {},
          otherField: {
            visited: true,
            active: true
          }
        },
        active: 'otherField'
      }
    }), {
      ...focus(),
      form: 'foo',
      field: 'myField'
    })
    expect(state)
      .toEqualMap({
        foo: {
          values: {
            myField: 'initialValue'
          },
          initial: {
            myField: 'initialValue'
          },
          fields: {
            otherField: {
              visited: true
            },
            myField: {
              visited: true,
              active: true
            }
          },
          active: 'myField'
        }
      })
  })
}
 
export default describeFocus