all files / src/ confirmation.js

100% Statements 16/16
94.44% Branches 17/18
100% Functions 3/3
100% Lines 11/11
1 branch Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21   11× 11×   11×   15× 15×   15×   15×            
import Validators from './validators'
import { prepareMsg, prepare, memoize } from './helpers'
 
let confirmation = memoize(function ({ field, fieldLabel, caseSensitive, message, msg, if: ifCond, unless }) {
  msg = msg || message
 
  return prepare(ifCond, unless, false, function (value, allValues) {
    // Immutable.js compatibility
    let fieldValue = typeof allValues.getIn === 'function' ? allValues.getIn(field.split('.')) : allValues[field]
    fieldValue = '' + (fieldValue || '')
 
    let cs = caseSensitive != null ? caseSensitive : Validators.defaultOptions.caseSensitive
 
    if (cs ? value !== fieldValue : value.toLowerCase() !== fieldValue.toLowerCase()) {
      return Validators.formatMessage(prepareMsg(msg, 'confirmation', { fieldLabel: fieldLabel || field }))
    }
  })
})
 
export default confirmation