formiojs
Version:
Common js library for client side interaction with <form.io>
1,403 lines (1,054 loc) • 40.1 kB
JavaScript
'use strict';
require("core-js/modules/es.object.to-string.js");
var _Validator = _interopRequireDefault(require("./Validator"));
var _Component = _interopRequireDefault(require("../components/_classes/component/Component"));
var _powerAssert = _interopRequireDefault(require("power-assert"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('Legacy Validator Tests', function () {
var baseComponent = new _Component.default({});
it('Should test for minLength', function () {
_powerAssert.default.equal(_Validator.default.validators.minLength.check(baseComponent, 5, 'test'), false);
_powerAssert.default.equal(_Validator.default.validators.minLength.check(baseComponent, 4, 'test'), true);
_powerAssert.default.equal(_Validator.default.validators.minLength.check(baseComponent, 3, 'test'), true);
_powerAssert.default.equal(_Validator.default.validators.minLength.check(baseComponent, 6, 'test'), false);
_powerAssert.default.equal(_Validator.default.validators.minLength.check(baseComponent, 6, ''), true);
});
it('Should test for maxLength', function () {
_powerAssert.default.equal(_Validator.default.validators.maxLength.check(baseComponent, 5, 'test'), true);
_powerAssert.default.equal(_Validator.default.validators.maxLength.check(baseComponent, 4, 'test'), true);
_powerAssert.default.equal(_Validator.default.validators.maxLength.check(baseComponent, 3, 'test'), false);
_powerAssert.default.equal(_Validator.default.validators.maxLength.check(baseComponent, 6, 'test'), true);
_powerAssert.default.equal(_Validator.default.validators.maxLength.check(baseComponent, 6, ''), true);
});
it('Should test for email', function () {
_powerAssert.default.equal(_Validator.default.validators.email.check(baseComponent, '', 'test'), false);
_powerAssert.default.equal(_Validator.default.validators.email.check(baseComponent, '', 'test@a'), false);
_powerAssert.default.equal(_Validator.default.validators.email.check(baseComponent, '', 'test@example.com'), true);
_powerAssert.default.equal(_Validator.default.validators.email.check(baseComponent, '', 'test@a.com'), true);
_powerAssert.default.equal(_Validator.default.validators.email.check(baseComponent, '', 'test@a.co'), true);
});
it('Should test for required', function () {
_powerAssert.default.equal(_Validator.default.validators.required.check(baseComponent, true, ''), false);
_powerAssert.default.equal(_Validator.default.validators.required.check(baseComponent, true, 't'), true);
_powerAssert.default.equal(_Validator.default.validators.required.check(baseComponent, false, ''), true);
_powerAssert.default.equal(_Validator.default.validators.required.check(baseComponent, false, 'tes'), true);
_powerAssert.default.equal(_Validator.default.validators.required.check(baseComponent, true, undefined), false);
_powerAssert.default.equal(_Validator.default.validators.required.check(baseComponent, true, null), false);
_powerAssert.default.equal(_Validator.default.validators.required.check(baseComponent, true, []), false);
_powerAssert.default.equal(_Validator.default.validators.required.check(baseComponent, true, ['test']), true);
});
it('Should test for custom', function () {
_powerAssert.default.equal(_Validator.default.validators.custom.check(baseComponent, 'valid = (input == "test")', 'test'), true);
_powerAssert.default.equal(_Validator.default.validators.custom.check(baseComponent, 'valid = (input == "test")', 'test2'), false);
_powerAssert.default.equal(_Validator.default.validators.custom.check(baseComponent, 'valid = (input == "test") ? true : "Should be false."', 'test2'), 'Should be false.');
_powerAssert.default.equal(_Validator.default.validators.custom.check(baseComponent, 'valid = (input == "test") ? true : "Should be false."', 'test'), true);
});
it('Should test for pattern', function () {
_powerAssert.default.equal(_Validator.default.validators.pattern.check(baseComponent, 'A.*', 'A'), true);
_powerAssert.default.equal(_Validator.default.validators.pattern.check(baseComponent, 'A.*', 'Aaaa'), true);
_powerAssert.default.equal(_Validator.default.validators.pattern.check(baseComponent, 'w+', 'test'), false);
_powerAssert.default.equal(_Validator.default.validators.pattern.check(baseComponent, '\\w+', 'test'), true);
_powerAssert.default.equal(_Validator.default.validators.pattern.check(baseComponent, '\\w+@\\w+', 'test@a'), true);
_powerAssert.default.equal(_Validator.default.validators.pattern.check(baseComponent, '\\w+@\\w+', 'test@example.com'), false);
});
it('Should test for json', function () {
_powerAssert.default.equal(_Validator.default.validators.json.check(baseComponent, {
or: [{
'_isEqual': [{
var: 'data.test'
}, ['1', '2', '3']]
}, 'Should be false.']
}, null, {
test: ['1', '2', '3']
}), true);
_powerAssert.default.equal(_Validator.default.validators.json.check(baseComponent, {
or: [{
'_isEqual': [{
var: 'data.test'
}, ['1', '2', '3']]
}, 'Should be false.']
}, null, {
test: ['1', '2', '4']
}), 'Should be false.');
});
});
describe('Validator Tests', function () {
it('Validates for required', function (done) {
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'required'
}]
});
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'required'
},
level: 'error',
message: 'Test is required'
}]);
done();
});
it('Overrides the message and level', function (done) {
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'required',
level: 'info',
message: 'ABC'
}]
});
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}, {}, true), [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'required'
},
level: 'info',
message: 'ABC'
}]);
done();
});
it('Only returns the last message for a rule', function (done) {
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'required',
level: 'info',
message: 'ABC'
}, {
rule: 'required',
level: 'error',
message: 'DEF'
}]
});
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'required'
},
level: 'error',
message: 'DEF'
}]);
done();
});
it('Fulfills custom validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'custom'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'custom',
level: 'error',
message: 'DEF',
settings: {
custom: 'valid = input === "foo";'
}
}]
}); // Null is empty value so false passes for Component.
component.dataValue = 'foo';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'bar';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
done();
});
it('Fulfills custom validation (multiple)', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'custom'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
multiple: true,
validations: [{
rule: 'custom',
level: 'error',
message: 'DEF',
settings: {
custom: 'valid = input === "foo";'
}
}]
});
component.dataValue = [];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = ['test'];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
done();
});
it('Fulfills date validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'date'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'date',
level: 'error',
message: 'DEF',
settings: {}
}]
});
component.dataValue = '01/05/12';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'January 5, 2012';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2019-12-04T16:33:10.626Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = new Date();
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills day validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'day'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'day',
level: 'error',
message: 'DEF',
settings: {}
}]
});
component.dataValue = '01/05/2012';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'January 5, 2012';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '2019-12-04T16:33:10.626Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = new Date();
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills email validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'email'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'email',
level: 'error',
message: 'DEF',
settings: {}
}]
});
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'test';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'test@example';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'test@example.com';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'test.test@example.com';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'test.test@example.io';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills json validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'json'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'json',
level: 'error',
message: 'DEF',
settings: {
json: {
'==': [{
var: 'input'
}, 'foo']
}
}
}]
});
component.dataValue = 'foo';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'bar';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
done();
});
it('Fulfills json validation (multiple)', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'json'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
multiple: true,
validations: [{
rule: 'json',
level: 'error',
message: 'DEF',
settings: {
json: {
'==': [{
var: 'input'
}, 'foo']
}
}
}]
});
component.dataValue = [];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = ['test'];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
done();
});
it('Fulfills mask validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'mask'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'mask',
level: 'error',
message: 'DEF',
settings: {
mask: '999'
}
}]
});
component.dataValue = '123';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'aaa';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '12';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '1234';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '1a2';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills max validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'max'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'max',
level: 'error',
message: 'DEF',
settings: {
limit: '10'
}
}]
});
component.dataValue = -1;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 0;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 1;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 9;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 10;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 11;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 1000000000;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '12';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills maxDate validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'maxDate'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'maxDate',
level: 'error',
message: 'DEF',
settings: {
dateLimit: '2019-12-04T00:00:00.000Z'
}
}]
});
component.dataValue = '2010-12-03T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2019-12-03T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2019-12-04T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2019-12-05T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '2029-12-05T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills maxLength validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'maxLength'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'maxLength',
level: 'error',
message: 'DEF',
settings: {
length: '10'
}
}]
});
component.dataValue = 'a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '123456789';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '123456789a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '1234567890a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'this is a really long string';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills maxWords validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'maxWords'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'maxWords',
level: 'error',
message: 'DEF',
settings: {
length: '3'
}
}]
});
component.dataValue = 'This';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'This is';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'This is a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'This is a test';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'this is a really long string';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills maxYear validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'maxYear'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'maxYear',
level: 'error',
message: 'DEF',
settings: '2020'
}]
});
component.dataValue = '2030';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '2021';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '3040';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '0000';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2000';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills minYear validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'minYear'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'minYear',
level: 'error',
message: 'DEF',
settings: '2000'
}]
});
component.dataValue = '1880';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '0011';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '1990';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '0000';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2020';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2000';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills min validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'min'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'min',
level: 'error',
message: 'DEF',
settings: {
limit: '10'
}
}]
});
component.dataValue = -1;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 0;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 1;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 9;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 10;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 11;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 1000000000;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '12';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills minDate validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'minDate'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'minDate',
level: 'error',
message: 'DEF',
settings: {
dateLimit: '2019-12-04T00:00:00.000Z'
}
}]
});
component.dataValue = '2010-12-03T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '2019-12-03T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '2019-12-04T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2019-12-05T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '2029-12-05T00:00:00.000Z';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills minLength validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'minLength'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'minLength',
level: 'error',
message: 'DEF',
settings: {
length: '10'
}
}]
});
component.dataValue = 'a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '123456789';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = '123456789a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '1234567890a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'this is a really long string';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills minWords validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'minWords'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'minWords',
level: 'error',
message: 'DEF',
settings: {
length: '3'
}
}]
});
component.dataValue = 'This';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'This is';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'This is a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'This is a test';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'this is a really long string';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills pattern validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'pattern'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'pattern',
level: 'error',
message: 'DEF',
settings: {
pattern: 'a.c'
}
}]
});
component.dataValue = 'abc';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'adc';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'aaa';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'ccc';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = 'a';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
done();
});
it('Fulfills pattern validation (multiple)', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'pattern'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
multiple: true,
validations: [{
rule: 'pattern',
level: 'error',
message: 'DEF',
settings: {
pattern: 'a.c'
}
}]
});
component.dataValue = [];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = ['abc'];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = ['abv'];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
done();
});
it('Fulfills required validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'required'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'required',
level: 'error',
message: 'DEF'
}]
}); // Null is empty value so false passes for Component.
component.dataValue = false;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = true;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 't';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = 'test';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
component.dataValue = '';
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = undefined;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = null;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
done();
});
it('Fulfills required validation (multiple)', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'required'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
type: 'textfield',
multiple: true,
validations: [{
rule: 'required',
level: 'error',
message: 'DEF'
}]
});
component.dataValue = [''];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
component.dataValue = ['test'];
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
done();
});
it('Fulfills url validation', function (done) {
var fail = [{
context: {
index: 0,
key: 'test',
label: 'Test',
validator: 'url'
},
level: 'error',
message: 'DEF'
}];
var pass = [];
var component = new _Component.default({
key: 'test',
label: 'Test',
validations: [{
rule: 'url',
level: 'error',
message: 'DEF'
}]
});
var valid = ['test.com', 'http://test.com', 'https://test.com', 'https://www.test.com', 'https://one.two.three.four.test.io', 'https://www.test.com/test', 'https://www.test.com/test/test.html', 'https://www.test.com/one/two/three/four/test.html', 'www.example.com', 'http://www.example.com#up', 'https://wikipedia.org/@/ru', 'https://wikipedia.com/@', 'http://www.site.com:8008', 'ftp://www.site.com', undefined, null];
var invalid = ['t', 'test', 'http://test', 'test@gmail.com', 'test@gmail.com ', 'test@gmail...com', 'test..com', 'http://test...com', 'http:://test.com', 'http:///test.com', 'https://www..example.com'];
try {
valid.forEach(function (value) {
component.dataValue = value;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), pass);
});
invalid.forEach(function (value) {
component.dataValue = value;
_powerAssert.default.deepEqual(_Validator.default.checkComponent(component, {}), fail);
});
done();
} catch (e) {
done(e);
}
});
});