-
-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathtest_validate.js
30 lines (26 loc) · 1.09 KB
/
test_validate.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
'use strict';
var assert = require('assert');
module.exports = function (validate, keyword) {
assert.strictEqual(validate({ p: 'abc', q: 1 }), true);
// property q should be a number
assert.strictEqual(validate({ p: 'foo', q: 'bar' }), false);
var errs = validate.errors;
assert.equal(errs.length, 2);
assert.equal(errs[0].keyword, 'type');
assert.equal(errs[0].schemaPath, '#/' + keyword + '/properties/q/type');
assert.equal(errs[0].instancePath, '/q');
assert.equal(errs[1].keyword, keyword);
assert.equal(errs[1].instancePath, '');
assert.equal(errs[1].schemaPath, '#/' + keyword);
// an object without q should fail
assert.strictEqual(validate({ p: 'foo' }), false);
errs = validate.errors;
assert.equal(errs.length, 2);
assert.equal(errs[0].keyword, 'required');
assert.equal(errs[0].schemaPath, '#/' + keyword + '/required');
assert.deepEqual(errs[0].params, { missingProperty: 'q' });
assert.equal(errs[0].instancePath, '');
assert.equal(errs[1].keyword, keyword);
assert.equal(errs[1].schemaPath, '#/' + keyword);
assert.equal(errs[1].instancePath, '');
};