-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtestutil.js
More file actions
41 lines (34 loc) · 986 Bytes
/
testutil.js
File metadata and controls
41 lines (34 loc) · 986 Bytes
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
39
40
41
'use strict';
var assert = require('assert');
var Ajv = require('ajv');
module.exports = {
getPromise: getPromise,
shouldBeError: shouldBeError
};
getPromise.callsResolutions = [];
function getPromise(value, delay) {
return new Promise(function (resolve, reject) {
setTimeout(function(){
if (value instanceof Error) {
getPromise.callsResolutions.push({ err: value });
reject(value);
} else {
getPromise.callsResolutions.push({ res: value });
resolve(value);
}
}, delay);
});
}
function shouldBeError(p, expectedMessage, expectedErrors) {
return p.then(
function (res) { throw new Error('should have thrown error') },
function (e) {
assert.equal(e.message, expectedMessage);
if (expectedErrors) {
assert(e instanceof Ajv.ValidationError);
var errors = e.errors.map(function(err) { return err.message; });
assert.deepEqual(errors, expectedErrors);
}
}
);
}