UNPKG

redux-form-validators

Version:

Simple validations with redux-form / react-final-form

432 lines (344 loc) 11.3 kB
"use strict"; var _assert = _interopRequireDefault(require("assert")); var _index = _interopRequireWildcard(require("../index")); var _helper = _interopRequireDefault(require("./helper")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var ERROR_NOT_A_NUMBER_ID = 'form.errors.notANumber'; var ERROR_NOT_AN_INTEGER_ID = 'form.errors.notAnInteger'; var ERROR_EQUAL_TO_ID = 'form.errors.equalTo'; var ERROR_OTHER_THAN_ID = 'form.errors.otherThan'; var ERROR_GREATER_THAN_ID = 'form.errors.greaterThan'; var ERROR_GREATER_THAN_OR_EQ_ID = 'form.errors.greaterThanOrEqualTo'; var ERROR_LESS_THAN_ID = 'form.errors.lessThan'; var ERROR_LESS_THAN_OR_EQ_ID = 'form.errors.lessThanOrEqualTo'; var ERROR_EVEN_ID = 'form.errors.even'; var ERROR_ODD_ID = 'form.errors.odd'; function test(value, params) { return (0, _helper["default"])((0, _index.numericality)(params)(value)); } describe('Validator: numericality', function () { it('should be invalid when `value` is not a number', function () { _assert["default"].strictEqual(ERROR_NOT_A_NUMBER_ID, test('')); _assert["default"].strictEqual(ERROR_NOT_A_NUMBER_ID, test(null)); _assert["default"].strictEqual(ERROR_NOT_A_NUMBER_ID, test('foobar')); _assert["default"].strictEqual(ERROR_NOT_A_NUMBER_ID, test('12foobar')); _assert["default"].strictEqual(ERROR_NOT_A_NUMBER_ID, test('foobar12')); }); it('should be invalid when `value` is not a integer', function () { _assert["default"].strictEqual(ERROR_NOT_A_NUMBER_ID, test('', { "int": true })); _assert["default"].strictEqual(ERROR_NOT_A_NUMBER_ID, test('foobar', { "int": true })); _assert["default"].strictEqual(ERROR_NOT_AN_INTEGER_ID, test('12.345', { "int": true })); _assert["default"].strictEqual(ERROR_NOT_AN_INTEGER_ID, test('0.01', { integer: true })); }); it('should be invalid when `value` is not = to equalTo', function () { _assert["default"].strictEqual(ERROR_EQUAL_TO_ID, test(1, { '=': 0 })); _assert["default"].strictEqual(ERROR_EQUAL_TO_ID, test('1', { '=': 0 })); _assert["default"].strictEqual(ERROR_EQUAL_TO_ID, test('18', { '=': 12 })); _assert["default"].strictEqual(ERROR_EQUAL_TO_ID, test('12.345', { '=': 12.34 })); _assert["default"].strictEqual(ERROR_EQUAL_TO_ID, test('0.01', { equalTo: '12.34' })); }); it('should be invalid when `value` is = to otherThan', function () { _assert["default"].strictEqual(ERROR_OTHER_THAN_ID, test(1, { '!=': 1 })); _assert["default"].strictEqual(ERROR_OTHER_THAN_ID, test('1', { '!=': 1 })); _assert["default"].strictEqual(ERROR_OTHER_THAN_ID, test('18', { '!=': 18 })); _assert["default"].strictEqual(ERROR_OTHER_THAN_ID, test('12.345', { '!=': 12.345 })); _assert["default"].strictEqual(ERROR_OTHER_THAN_ID, test('0.01', { otherThan: '0.01' })); }); it('should be invalid when `value` is not > to greaterThan', function () { _assert["default"].strictEqual(ERROR_GREATER_THAN_ID, test(-1, { '>': 0 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_ID, test('0', { '>': 0 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_ID, test('12', { '>': 12 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_ID, test('12.34', { '>': 12.34 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_ID, test('11.34', { greaterThan: '12.34' })); }); it('should be invalid when `value` is not >= to greaterThanOrEqualTo', function () { _assert["default"].strictEqual(ERROR_GREATER_THAN_OR_EQ_ID, test(-1, { '>=': 0 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_OR_EQ_ID, test('-0.01', { '>=': 0 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_OR_EQ_ID, test('11.9', { '>=': 12 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_OR_EQ_ID, test('12.339', { '>=': 12.34 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_OR_EQ_ID, test('12.339', { greaterThanOrEqualTo: '12.34' })); }); it('should be invalid when `value` is not < to lessThan', function () { _assert["default"].strictEqual(ERROR_LESS_THAN_ID, test(1, { '<': 0 })); _assert["default"].strictEqual(ERROR_LESS_THAN_ID, test('0', { '<': 0 })); _assert["default"].strictEqual(ERROR_LESS_THAN_ID, test('12', { '<': 12 })); _assert["default"].strictEqual(ERROR_LESS_THAN_ID, test('12.34', { '<': 12.34 })); _assert["default"].strictEqual(ERROR_LESS_THAN_ID, test('13.34', { lessThan: '12.34' })); }); it('should be invalid when `value` is not <= to lessThanOrEqualTo', function () { _assert["default"].strictEqual(ERROR_LESS_THAN_OR_EQ_ID, test(1, { '<=': 0 })); _assert["default"].strictEqual(ERROR_LESS_THAN_OR_EQ_ID, test('0.01', { '<=': 0 })); _assert["default"].strictEqual(ERROR_LESS_THAN_OR_EQ_ID, test('12.1', { '<=': 12 })); _assert["default"].strictEqual(ERROR_LESS_THAN_OR_EQ_ID, test('12.341', { '<=': 12.34 })); _assert["default"].strictEqual(ERROR_LESS_THAN_OR_EQ_ID, test('13.34', { lessThanOrEqualTo: '12.34' })); }); it('should be invalid when `value` is not even', function () { _assert["default"].strictEqual(ERROR_EVEN_ID, test('1', { even: true })); _assert["default"].strictEqual(ERROR_EVEN_ID, test('3', { even: true })); _assert["default"].strictEqual(ERROR_EVEN_ID, test('-1', { even: true })); _assert["default"].strictEqual(ERROR_EVEN_ID, test('15.9', { even: true })); }); it('should be invalid when `value` is not odd', function () { _assert["default"].strictEqual(ERROR_ODD_ID, test('2', { odd: true })); _assert["default"].strictEqual(ERROR_ODD_ID, test('4', { odd: true })); _assert["default"].strictEqual(ERROR_ODD_ID, test('-2', { odd: true })); _assert["default"].strictEqual(ERROR_ODD_ID, test('14.9', { odd: true })); }); it('should be valid when `value` is a number', function () { _assert["default"].ok(!test(0)); _assert["default"].ok(!test(1)); _assert["default"].ok(!test('12')); _assert["default"].ok(!test('12.34')); }); it('should be valid when `value` is an integer', function () { _assert["default"].ok(!test(1, { "int": true })); _assert["default"].ok(!test('1', { "int": true })); _assert["default"].ok(!test('12', { "int": true })); _assert["default"].ok(!test('-3', { integer: true })); }); it('should be valid when `value` is = to equalTo', function () { _assert["default"].ok(!test(1, { '=': 1 })); _assert["default"].ok(!test('1', { '=': 1 })); _assert["default"].ok(!test('12.345', { '=': 12.345 })); _assert["default"].ok(!test('0.01', { equalTo: 0.01 })); }); it('should be invalid when `value` is != to otherThan', function () { _assert["default"].ok(!test(1, { '!=': 0 })); _assert["default"].ok(!test('1', { '!=': 0 })); _assert["default"].ok(!test('18', { '!=': 12 })); _assert["default"].ok(!test('12.345', { '!=': 12.34 })); _assert["default"].ok(!test('0.01', { otherThan: '12.34' })); }); it('should be valid when `value` is > to greaterThan', function () { _assert["default"].ok(!test(0.01, { '>': 0 })); _assert["default"].ok(!test('1', { '>': 0 })); _assert["default"].ok(!test('12.1', { '>': 12 })); _assert["default"].ok(!test('12.35', { greaterThan: 12.34 })); }); it('should be valid when `value` is >= to greaterThanOrEqualTo', function () { _assert["default"].ok(!test(0, { '>=': 0 })); _assert["default"].ok(!test('0', { '>=': 0 })); _assert["default"].ok(!test('12', { '>=': 12 })); _assert["default"].ok(!test('12.34', { greaterThanOrEqualTo: 12.34 })); }); it('should be valid when `value` is < to lessThan', function () { _assert["default"].ok(!test(-1, { '<': 0 })); _assert["default"].ok(!test('-0.1', { '<': 0 })); _assert["default"].ok(!test('11', { '<': 12 })); _assert["default"].ok(!test('12.33', { lessThan: 12.34 })); }); it('should be valid when `value` is <= to lessThanOrEqualTo', function () { _assert["default"].ok(!test(0, { '<=': 0 })); _assert["default"].ok(!test('-0.01', { '<=': 0 })); _assert["default"].ok(!test('11.9', { '<=': 12 })); _assert["default"].ok(!test('12.34', { lessThanOrEqualTo: 12.34 })); }); it('should be valid when `value` is even', function () { _assert["default"].ok(!test('0', { even: true })); _assert["default"].ok(!test('2', { even: true })); _assert["default"].ok(!test('-2', { even: true })); _assert["default"].ok(!test('2.3', { even: true })); _assert["default"].ok(!test('-2.3', { even: true })); }); it('should be valid when `value` is odd', function () { _assert["default"].ok(!test('1', { odd: true })); _assert["default"].ok(!test('-1', { odd: true })); _assert["default"].ok(!test('1.2', { odd: true })); _assert["default"].ok(!test('-1.2', { odd: true })); }); it('should use formatMessage', function () { var defaultValue = _index["default"].formatMessage; _index["default"].formatMessage = function (msg) { return Object.assign({}, msg, { id: msg.id + '2' }); }; _assert["default"].strictEqual(ERROR_NOT_A_NUMBER_ID + '2', test('foobar')); _assert["default"].strictEqual(ERROR_EQUAL_TO_ID + '2', test(1, { '=': 0 })); _assert["default"].strictEqual(ERROR_OTHER_THAN_ID + '2', test(1, { '!=': 1 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_ID + '2', test(-1, { '>': 0 })); _assert["default"].strictEqual(ERROR_GREATER_THAN_OR_EQ_ID + '2', test(-1, { '>=': 0 })); _assert["default"].strictEqual(ERROR_LESS_THAN_ID + '2', test(1, { '<': 0 })); _assert["default"].strictEqual(ERROR_LESS_THAN_OR_EQ_ID + '2', test(1, { '<=': 0 })); _assert["default"].strictEqual(ERROR_EVEN_ID + '2', test('1', { even: true })); _assert["default"].strictEqual(ERROR_ODD_ID + '2', test('2', { odd: true })); _index["default"].formatMessage = defaultValue; }); });