thoughts/node_modules/jsonwebtoken/node_modules/joi/test/helper.js
node_modules/jsonwebtoken/node_modules/joi/test/helper.jsRaw
1// Load modules
2
3var Code = require('code');
4var Joi = require('../');
5
6
7// Declare internals
8
9var internals = {};
10
11
12// Test shortcuts
13
14var expect = Code.expect;
15
16
17exports.validate = function (schema, config, callback) {
18
19 return exports.validateOptions(schema, config, null, callback);
20};
21
22
23exports.validateOptions = function (schema, config, options, callback) {
24
25 var compiled = Joi.compile(schema);
26 for (var i = 0, il = config.length; i < il; ++i) {
27
28 var item = config[i];
29 var result = Joi.validate(item[0], compiled, item[2] || options);
30
31 var err = result.error;
32 var value = result.value;
33
34 if (err !== null && item[1]) {
35 console.log(err);
36 }
37
38 if (err === null && !item[1]) {
39 console.log(item[0]);
40 }
41
42 expect(err === null).to.equal(item[1]);
43
44 if (item.length >= 4) {
45 var comparator = item[3];
46 if (item[1]) {
47 expect(value).to.deep.equal(comparator);
48 }
49 else {
50 if (comparator instanceof RegExp) {
51 expect(err.message).to.match(comparator);
52 }
53 else {
54 expect(err.message).to.deep.equal(comparator);
55 }
56 }
57 }
58 }
59
60 if (callback) {
61 callback();
62 }
63};