UNPKG

redux-form-validators

Version:

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

134 lines (107 loc) 3.69 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_ID = 'form.errors.confirmation'; function getIn(keys) { return keys.reduce(function (h, k) { return (h || {})[k]; }, this); } function test(value, params, allValues) { params = Object.assign({ field: 'password_confirmation' }, params || {}); return (0, _helper["default"])((0, _index.confirmation)(params)(value, allValues || { password_confirmation: 'validator' })); } describe('Validator: confirmation', function () { it('should be invalid when `value` != confirmation', function () { _assert["default"].strictEqual(ERROR_ID, test('val')); _assert["default"].strictEqual(ERROR_ID, test('val', { caseSensitive: false })); _assert["default"].strictEqual(ERROR_ID, test('VALIDATOR', { caseSensitive: true })); _assert["default"].strictEqual(ERROR_ID, test('valiDator', { caseSensitive: true })); }); it("should be invalid when confirmation field doesn't exists", function () { _assert["default"].strictEqual(ERROR_ID, test('validator', { field: 'passwordconfirmation' })); _assert["default"].strictEqual(ERROR_ID, test(123, { field: 'foobar' }, { foo: { bar: '123' } })); }); it('should be valid when `value` = confirmation', function () { _assert["default"].ok(!test('', { field: 'foo' }, {})); _assert["default"].ok(!test('validator')); _assert["default"].ok(!test('VALIDATOR', { caseSensitive: false })); _assert["default"].ok(!test('valiDator', { caseSensitive: false })); _assert["default"].ok(!test(123, { field: 'foo' }, { foo: '123' })); _assert["default"].ok(!test(123, { field: 'foo.bar' }, { foo: { bar: '123' } })); _assert["default"].ok(!test(123, { field: 'foo.bar.stuff' }, { foo: { bar: { stuff: '123' } } })); _assert["default"].ok(!test(123, { field: 'foo.bar.stuff' }, { getIn: getIn, foo: { bar: { stuff: '123' } } })); }); it('should use default caseSensitive option', function () { var defaultValue = _index["default"].defaultOptions.caseSensitive; _index["default"].defaultOptions.caseSensitive = true; _assert["default"].ok(!test('validator')); _index["default"].defaultOptions.caseSensitive = false; _assert["default"].ok(!test('VALIDATOR')); _index["default"].defaultOptions.caseSensitive = defaultValue; }); 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_ID + '2', test('val')); _index["default"].formatMessage = defaultValue; }); });