assert.js
2.39 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
* assert.js: Assertion helpers for broadway tests
*
* (C) 2011, Nodejitsu Inc.
* MIT LICENSE
*
*/
var assert = module.exports = require('assert'),
fs = require('fs'),
path = require('path'),
nconf = require('nconf'),
vows = require('vows');
//
// ### Assertion helpers for working with `broadway.App` objects.
//
assert.app = {};
//
// ### Assertion helpers for working with `broadway.plugins`.
//
assert.plugins = {};
//
// ### Assert that an application has various plugins.
//
assert.plugins.has = {
config: function (app, config) {
assert.instanceOf(app.config, nconf.Provider);
if (config) {
//
// TODO: Assert that all configuration has been loaded
//
}
},
exceptions: function (app) {
},
directories: function (app) {
if (app.options['directories']) {
Object.keys(app.options['directories']).forEach(function (key) {
assert.isTrue((fs.existsSync || path.existsSync)(app.options['directories'][key]));
});
}
},
log: function (app) {
assert.isObject(app.log);
//
// TODO: Assert winston.extend methods
//
}
};
//
// ### Assert that an application doesn't have various plugins
//
assert.plugins.notHas = {
config: function (app) {
assert.isTrue(!app.config);
},
exceptions: function (app) {
},
directories: function (app) {
assert.isTrue(!app.config.get('directories'))
},
log: function (app) {
assert.isTrue(!app.log);
//
// TODO: Assert winston.extend methods
//
}
};
assert.log = {};
assert.log.levelMsgMeta = function (err, level, msg, meta) {
assert.equal(level, this.event[1]);
assert.equal(msg, this.event[2]);
assert.equal(meta, this.event[3]);
};
assert.log.msgMeta = function (err, level, msg, meta) {
assert.equal(level, this.event[0].split('::')[1] || 'info');
assert.equal(msg, this.event[1]);
assert.equal(meta, this.event[2]);
};
assert.log.levelMeta = function (err, level, msg, meta) {
assert.equal(level, this.event[1]);
assert.equal(msg, this.event[0]);
assert.deepEqual(meta, this.event[2]);
};
assert.log.levelMsg = function (err, level, msg, meta) {
assert.equal(level, this.event[1]);
assert.equal(msg, this.event[2]);
};
assert.log.metaOnly = function (err, level, msg, meta, event) {
assert.equal(level, 'info');
assert.equal(msg, this.event[0]);
assert.equal(meta, this.event[1]);
assert.equal(event, this.event[0]);
};