-
Notifications
You must be signed in to change notification settings - Fork 142
/
Copy pathoutput.js
38 lines (34 loc) · 1.07 KB
/
output.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
31
32
33
34
35
36
37
38
var assert = require('assert');
var bibref = require('../lib/bibref');
var json = bibref.all;
var tv4 = require("tv4");
var pointer = require("json-pointer");
var formats = require('tv4-formats');
function wrap(id) {
return '[[' + id + ']]';
}
function displayErr(err, obj, output) {
output.push("* " + err.message.trim());
JSON.stringify(pointer.get(obj, err.dataPath), null, 4).split("\n").forEach(function(line) {
output.push(" " + line);
});
}
function schemaMsg(err, obj) {
if (!err) return "";
var output = [""];
displayErr(err, obj, output);
if (err.subErrors) {
err.subErrors.forEach(function(s) {
displayErr(s, obj, output);
});
}
return output.join("\n");
}
suite('Validate References', function() {
test("Validate References with JSON schema.", function() {
var validator = tv4.freshApi();
validator.addFormat(formats);
var result = validator.validateResult(json, require("../schemas/reference.json"));
assert(result.valid, schemaMsg(result.error, json));
});
});