redux-form-validators
Version:
Simple validations with redux-form / react-final-form
134 lines (107 loc) • 3.69 kB
JavaScript
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;
});
});
;