redux-form-validators
Version:
Simple validations with redux-form / react-final-form
80 lines (57 loc) • 2.17 kB
JavaScript
var _assert = _interopRequireDefault(require("assert"));
var _index = require("../index");
var _helper = _interopRequireDefault(require("./helper"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function test(type, func, value) {
var params = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
var allValues = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
if (!type || type === 'if') {
params["if"] = function (values) {
return values.foo === 'foo';
};
allValues.foo = '';
}
if (!type || type === 'unless') {
params.unless = function (values) {
return values.bar !== 'bar';
};
allValues.bar = '';
}
return (0, _helper["default"])(func(params)(value, allValues));
}
describe('Validator option: if & unless', function () {
it('should not return an error', function () {
var blank = '';
['', 'if', 'unless'].forEach(function (type) {
// All these tests normally return an error
_assert["default"].ok(!test(type, _index.absence, 'foo'));
_assert["default"].ok(!test(type, _index.acceptance));
_assert["default"].ok(!test(type, _index.confirmation, 'foo', {
field: 'bar'
}, {}));
_assert["default"].ok(!test(type, _index.email, blank));
_assert["default"].ok(!test(type, _index.date, blank, {
format: 'mm/dd/yyyy'
}));
_assert["default"].ok(!test(type, _index.exclusion, blank, {
"in": [blank]
}));
_assert["default"].ok(!test(type, _index.file, blank, {
minFiles: 9
}));
_assert["default"].ok(!test(type, _index.format, blank, {
"with": /^foo$/
}));
_assert["default"].ok(!test(type, _index.inclusion, blank, {
"in": []
}));
_assert["default"].ok(!test(type, _index.length, blank, {
is: 300
}));
_assert["default"].ok(!test(type, _index.numericality, blank));
_assert["default"].ok(!test(type, _index.presence, blank));
_assert["default"].ok(!test(type, _index.url, blank));
});
});
});
;