arnaucube
arnaucube/thoughtsPublic Self-hosted repository
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};