Socket
Socket
Sign inDemoInstall

joi

Package Overview
Dependencies
Maintainers
3
Versions
238
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

joi - npm Package Compare versions

Comparing version 2.0.3 to 2.1.0

4

languages/en-us.json

@@ -62,4 +62,6 @@ {

"regex": "the value of {{key}} must match the regular expression {{value}}",
"email": "The value of {{key}} must be a valid email"
"email": "The value of {{key}} must be a valid email",
"isoDate": "the value of {{key}} must be a valid ISO 8601 date",
"guid": "the value of {{key}} must be a valid GUID"
}
}

@@ -436,3 +436,3 @@ // Load modules

internals.Any.prototype._describe = function () {
internals.Any.prototype.describe = function () {

@@ -439,0 +439,0 @@ var description = {

@@ -72,7 +72,7 @@ // Load modules

if (schema instanceof Any) {
return schema._describe();
return schema.describe();
}
return exports.object(schema)._describe();
return exports.object(schema).describe();
};

@@ -31,5 +31,9 @@ // Load modules

internals.Number.prototype._convert = function (value) {
if (typeof value === 'string') {
var number = parseFloat(value);
if (isNaN(number) || !isFinite(value)) {
return NaN;
}
if (typeof value === 'string' && value) {
return Number(value);
return number;
}

@@ -88,1 +92,31 @@

};
internals.Number.prototype.negative = function () {
this._test('negative', function (value, state, options) {
if (value < 0) {
return null;
}
return Any.error('number.negative', { value: value }, state);
});
return this;
};
internals.Number.prototype.positive = function () {
this._test('positive', function (value, state, options) {
if (value > 0) {
return null;
}
return Any.error('number.positive', { value: value }, state);
});
return this;
};

@@ -52,5 +52,5 @@ // Load modules

internals.Object.prototype._describe = function () {
internals.Object.prototype.describe = function () {
var description = Any.prototype._describe.call(this);
var description = Any.prototype.describe.call(this);

@@ -70,6 +70,6 @@ if (this._children) {

description.children[key] = description.children[key] || [];
description.children[key].push(config._describe());
description.children[key].push(config.describe());
}
else {
description.children[key] = config._describe();
description.children[key] = config.describe();
}

@@ -84,2 +84,62 @@ }

internals.Object.prototype.length = function (limit) {
Utils.assert((!isNaN(limit) && ((limit | 0) === parseFloat(limit))), 'limit must be an integer');
this._test('length', limit, function (value, state, options) {
if (value !== null &&
value !== undefined &&
Object.keys(value).length === limit) {
return null;
}
return Any.error('object.length', { value: limit }, state);
});
return this;
};
internals.Object.prototype.min = function (limit) {
Utils.assert((!isNaN(limit) && ((limit | 0) === parseFloat(limit))), 'limit must be an integer');
this._test('min', limit, function (value, state, options) {
if (value !== null &&
value !== undefined &&
Object.keys(value).length >= limit) {
return null;
}
return Any.error('object.min', { value: limit }, state);
});
return this;
};
internals.Object.prototype.max = function (limit) {
Utils.assert((!isNaN(limit) && ((limit | 0) === parseFloat(limit))), 'limit must be an integer');
this._test('max', limit, function (value, state, options) {
if (value !== null &&
value !== undefined &&
Object.keys(value).length <= limit) {
return null;
}
return Any.error('object.max', { value: limit }, state);
});
return this;
};
internals.Object.prototype._traverse = function (value, state, options) {

@@ -94,5 +154,6 @@

var errors = [];
var key;
for (var i = 0, il = keys.length; i < il; ++i) {
var key = keys[i];
key = keys[i];
var child = this._children[key];

@@ -132,3 +193,3 @@ var item = value[key];

for (var k = 0, kl = unprocessedKeys.length; k < kl; ++k) {
var key = unprocessedKeys[k];
key = unprocessedKeys[k];
if (options.stripUnknown) {

@@ -135,0 +196,0 @@ delete value[key];

@@ -177,1 +177,36 @@ // Load modules

};
internals.String.prototype.isoDate = function () {
var regex = /^(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))$/;
this._test(function (value, state, options) {
if (value.match(regex)) {
return null;
}
return Any.error('string.isoDate', null, state);
});
return this;
};
internals.String.prototype.guid = function () {
var regex = /^[A-F0-9]{8}(?:-?[A-F0-9]{4}){3}-?[A-F0-9]{12}$/i;
var regex2 = /^\{[A-F0-9]{8}(?:-?[A-F0-9]{4}){3}-?[A-F0-9]{12}\}$/i;
this._test(function (value, state, options) {
if (value.match(regex) || value.match(regex2)) {
return null;
}
return Any.error('string.guid', null, state);
});
return this;
};
{
"name": "joi",
"description": "Object schema validation",
"version": "2.0.3",
"version": "2.1.0",
"repository": "git://github.com/spumko/joi",

@@ -6,0 +6,0 @@ "main": "index",

@@ -316,3 +316,3 @@ <a href="https://github.com/spumko"><img src="https://raw.github.com/spumko/spumko/master/images/from.png" align="right" /></a>

var schema = {
a: Joi.any().strinct()
a: Joi.any().strict()
};

@@ -418,3 +418,3 @@ ```

var err = any.validate(true);
var err = boolean.validate(true);
```

@@ -628,2 +628,22 @@

#### `string.guid()`
Requires the string value to be a valid GUID.
```javascript
var schema = {
a: Joi.string().guid()
};
```
#### `string.isoDate()`
Requires the string value to be in valid ISO 8601 date format.
```javascript
var schema = {
a: Joi.string().isoDate()
};
```
# Migration notes

@@ -661,2 +681,1 @@

@@ -0,0 +0,0 @@ {

@@ -68,3 +68,11 @@ // Load modules

['1', true],
['100', true]
['100', true],
['1e3', true],
['1 some text', false],
['\t\r', false],
[' ', false],
[' 2', true],
['\t\r43', true],
['43 ', true],
['', false]
]);

@@ -135,2 +143,129 @@ done();

it('should handle combination of min and positive', function (done) {
var rule = Joi.number().min(-3).positive();
Validate(rule, [
[1, true],
[-2, false],
[8, true],
[null, false]
]);
done();
});
it('should handle combination of max and positive', function (done) {
var rule = Joi.number().max(5).positive();
Validate(rule, [
[4, true],
[-2, false],
[8, false],
[null, false]
]);
done();
});
it('should handle combination of min and negative', function (done) {
var rule = Joi.number().min(-3).negative();
Validate(rule, [
[4, false],
[-2, true],
[-4, false],
[null, false]
]);
done();
});
it('should handle combination of negative and positive', function (done) {
var rule = Joi.number().negative().positive();
Validate(rule, [
[4, false],
[-2, false],
[0, false],
[null, false]
]);
done();
});
it('should handle combination of negative and allow', function (done) {
var rule = Joi.number().negative().allow(1);
Validate(rule, [
[1, true],
[-10, true],
[8, false],
[0, false],
[null, false]
]);
done();
});
it('should handle combination of positive and allow', function (done) {
var rule = Joi.number().positive().allow(-1);
Validate(rule, [
[1, true],
[-1, true],
[8, true],
[-10, false],
[null, false]
]);
done();
});
it('should handle combination of positive, allow, and nullOk', function (done) {
var rule = Joi.number().positive().allow(-1).nullOk();
Validate(rule, [
[1, true],
[-1, true],
[8, true],
[-10, false],
[null, true]
]);
done();
});
it('should handle combination of negative, allow, and nullOk', function (done) {
var rule = Joi.number().negative().allow(1).nullOk();
Validate(rule, [
[1, true],
[-10, true],
[8, false],
[0, false],
[null, true]
]);
done();
});
it('should handle combination of positive, allow, nullOk, and deny', function (done) {
var rule = Joi.number().positive().allow(-1).nullOk().deny(1);
Validate(rule, [
[1, false],
[-1, true],
[8, true],
[-10, false],
[null, true]
]);
done();
});
it('should handle combination of negative, allow, nullOk, and deny', function (done) {
var rule = Joi.number().negative().allow(1).nullOk().deny(-5);
Validate(rule, [
[1, true],
[-10, true],
[-5, false],
[8, false],
[0, false],
[null, true]
]);
done();
});
it('should handle combination of min, max, and allow', function (done) {

@@ -269,3 +404,3 @@

var t = Joi.number().integer();
var result = Joi.validate('', t);
var result = Joi.validate('1.1', t);
expect(result.message).to.contain('integer');

@@ -272,0 +407,0 @@ done();

@@ -68,2 +68,51 @@ // Load modules

it('should validate the key count when min is set', function (done) {
var schema = Joi.object().min(3);
Validate(schema, [
[{ item: 'something' }, false],
[{ item: 'something', item2: 'something else' }, false],
[{ item: 'something', item2: 'something else', item3: 'something something else' }, true],
['', false]
]);
done();
});
it('should validate the key count when max is set', function (done) {
var schema = Joi.object().max(2);
Validate(schema, [
[{ item: 'something' }, true],
[{ item: 'something', item2: 'something else' }, true],
[{ item: 'something', item2: 'something else', item3: 'something something else' }, false],
['', false]
]);
done();
});
it('should validate the key count when min and max is set', function (done) {
var schema = Joi.object().max(3).min(2);
Validate(schema, [
[{ item: 'something' }, false],
[{ item: 'something', item2: 'something else' }, true],
[{ item: 'something', item2: 'something else', item3: 'something something else' }, true],
[{ item: 'something', item2: 'something else', item3: 'something something else', item4: 'item4' }, false],
['', false]
]);
done();
});
it('should validate the key count when length is set', function (done) {
var schema = Joi.object().length(2);
Validate(schema, [
[{ item: 'something' }, false],
[{ item: 'something', item2: 'something else' }, true],
[{ item: 'something', item2: 'something else', item3: 'something something else' }, false],
['', false]
]);
done();
});
it('should traverse an object and validate all properties in the top level', function (done) {

@@ -70,0 +119,0 @@

@@ -815,3 +815,624 @@ // Load modules

});
it('should validate isoDate', function (done) {
Validate(Joi.string().isoDate(), [
['2013-06-07T14:21:46.295Z', true],
['2013-06-07T14:21:46.295+07:00', true],
['2013-06-07T14:21:46.295-07:00', true],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', true],
['2013-06-07T14:21:46-07:00', true],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', true],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false]
]);
done();
});
it('should validate isoDate with a friendly error message', function (done) {
var schema = { item: Joi.string().isoDate() };
var err = Joi.validate({ item: 'something' }, schema);
expect(err.message).to.contain('must be a valid ISO 8601 date');
done();
});
it('should handle combination of isoDate and min', function (done) {
var rule = Joi.string().isoDate().min(23);
Validate(rule, [
['2013-06-07T14:21:46.295Z', true],
['2013-06-07T14:21:46.295+07:00', true],
['2013-06-07T14:21:46.295-07:00', true],
['2013-06-07T14:21:46Z', false],
['2013-06-07T14:21:46+07:00', true],
['2013-06-07T14:21:46-07:00', true],
['2013-06-07T14:21Z', false],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', false],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min and max', function (done) {
var rule = Joi.string().isoDate().min(17).max(23);
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', false],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', true],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min and max', function (done) {
var rule = Joi.string().isoDate().min(17).max(23);
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', false],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', true],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max and deny', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).deny('2013-06-07T14:21+07:00');
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', false],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max and allow', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).allow('2013-06-07T14:21:46.295+07:00');
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', true],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', true],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max, allow and deny', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).allow('2013-06-07T14:21:46.295+07:00').deny('2013-06-07T14:21+07:00');
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', true],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max, allow, deny and emptyOK', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).allow('2013-06-07T14:21:46.295+07:00').deny('2013-06-07T14:21+07:00').emptyOk();
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', true],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max, allow, deny and emptyOK', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).allow('2013-06-07T14:21:46.295+07:00').emptyOk();
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', true],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', true],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max, allow, deny and regex', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).allow('2013-06-07T14:21:46.295+07:00').deny('2013-06-07T14:21Z').regex(/Z$/);
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', true],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', false],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', false],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max, allow, deny, regex and emptyOK', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).allow('2013-06-07T14:21:46.295+07:00').deny('2013-06-07T14:21Z').regex(/Z$/).emptyOk();
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', true],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', false],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', false],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max and emptyOK', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).emptyOk();
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', false],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', true],
['2013-06-07T14:21-07:00', true],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max and regex', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).regex(/Z$/);
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', false],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', false],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max, regex and emptyOK', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).regex(/Z$/).emptyOk();
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', false],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', false],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of isoDate, min, max, regex and required', function (done) {
var rule = Joi.string().isoDate().min(17).max(23).regex(/Z$/).required();
Validate(rule, [
['2013-06-07T14:21:46.295Z', false],
['2013-06-07T14:21:46.295+07:00', false],
['2013-06-07T14:21:46.295-07:00', false],
['2013-06-07T14:21:46Z', true],
['2013-06-07T14:21:46+07:00', false],
['2013-06-07T14:21:46-07:00', false],
['2013-06-07T14:21Z', true],
['2013-06-07T14:21+07:00', false],
['2013-06-07T14:21-07:00', false],
['2013-06-07T14:21Z+7:00', false],
['1-1-2013', false],
['', false],
[null, false]
]);
done();
});
it('should validate guid', function (done) {
Validate(Joi.string().guid(), [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', true],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', true],
['69593D62-71EA-4548-85E4-04FC71357423', true],
['677E2553DD4D43B09DA77414DB1EB8EA', true],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', true],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', true],
['b4b2fb69c6244e5eb0698e0c6ec66618', true],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', false],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false]
]);
done();
});
it('should validate guid with a friendly error message', function (done) {
var schema = { item: Joi.string().guid() };
var err = Joi.validate({ item: 'something' }, schema);
expect(err.message).to.contain('must be a valid GUID');
done();
});
it('should handle combination of guid and min', function (done) {
var rule = Joi.string().guid().min(36);
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', true],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', false],
['69593D62-71EA-4548-85E4-04FC71357423', true],
['677E2553DD4D43B09DA77414DB1EB8EA', false],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', true],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', false],
['0c74f13f-fa83-4c48-9b33-68921dd72463', true],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', false],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of guid, min and max', function (done) {
var rule = Joi.string().guid().min(32).max(34);
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', true],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', true],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', true],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', false],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max and deny', function (done) {
var rule = Joi.string().guid().min(32).max(34).deny('b4b2fb69c6244e5eb0698e0c6ec66618');
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', true],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', true],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', false],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max and allow', function (done) {
var rule = Joi.string().guid().min(32).max(34).allow('{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D');
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', true],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', true],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', true],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', true],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max, allow and deny', function (done) {
var rule = Joi.string().guid().min(32).max(34).allow('{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D').deny('b4b2fb69c6244e5eb0698e0c6ec66618');
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', true],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', true],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', true],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max, allow, deny and emptyOK', function (done) {
var rule = Joi.string().guid().min(32).max(34).allow('{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D').deny('b4b2fb69c6244e5eb0698e0c6ec66618').emptyOk();
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', true],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', true],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', true],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max, allow and emptyOK', function (done) {
var rule = Joi.string().guid().min(32).max(34).allow('{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D').emptyOk();
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', true],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', true],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', true],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', true],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max, allow, deny and regex', function (done) {
var rule = Joi.string().guid().min(32).max(34).allow('{D1A5279D-B27D-4CD4-A05E-EFDD53D08').deny('b4b2fb69c6244e5eb0698e0c6ec66618').regex(/^{7e908/);
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', false],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', false],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08', true],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max, allow, deny, regex and emptyOK', function (done) {
var rule = Joi.string().guid().min(32).max(34).allow('{D1A5279D-B27D-4CD4-A05E-EFDD53D08').deny('b4b2fb69c6244e5eb0698e0c6ec66618').regex(/^{7e908/).emptyOk();
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', false],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', false],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08', true],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max and emptyOK', function (done) {
var rule = Joi.string().guid().min(32).max(34).emptyOk();
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', true],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', true],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', true],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', false],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max and regex', function (done) {
var rule = Joi.string().guid().min(32).max(34).regex(/^{7e9081/i);
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', false],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', false],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', false],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', false],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max, regex and emptyOK', function (done) {
var rule = Joi.string().guid().min(32).max(34).regex(/^{7e9081/i).emptyOk();
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', false],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', false],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', false],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', true],
[null, false]
]);
done();
});
it('should handle combination of guid, min, max, regex and required', function (done) {
var rule = Joi.string().guid().min(32).max(34).regex(/^{7e9081/i).required();
Validate(rule, [
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['{B59511BD6A5F4DF09ECF562A108D8A2E}', false],
['69593D62-71EA-4548-85E4-04FC71357423', false],
['677E2553DD4D43B09DA77414DB1EB8EA', false],
['{5ba3bba3-729a-4717-88c1-b7c4b7ba80db}', false],
['{7e9081b59a6d4cc1a8c347f69fb4198d}', true],
['0c74f13f-fa83-4c48-9b33-68921dd72463', false],
['b4b2fb69c6244e5eb0698e0c6ec66618', false],
['{283B67B2-430F-4E6F-97E6-19041992-C1B0}', false],
['{D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D', false],
['D1A5279D-B27D-4CD4-A05E-EFDD53D08E8D}', false],
['', false],
[null, false]
]);
done();
});
});
});

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc