/
index.js
45 lines (34 loc) · 904 Bytes
/
index.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
39
40
41
42
43
44
var assert = require('assert');
var util = require('util');
var EventEmitter = require('events').EventEmitter;
var verbose = process.env.VERBOSE;
module.exports = CreateMock;
function CreateMock(methods) {
methods = methods || [];
assert(methods instanceof Array, 'methods must be an array');
function f(name) {
return function() {
var args = Array.prototype.slice.call(arguments);
args.unshift(name);
mock.emit.apply(mock, args);
if (verbose) console.log.apply(console, args);
}
}
var mock = f('');
var emitter = new EventEmitter;
util._extend(mock, emitter);
[
'addListener',
'on',
'once',
'removeListener',
'removeAllListeners',
'setMaxListeners',
'listeners',
'emit'
].forEach(function(method) { mock[method] = emitter[method]; });
methods.forEach(function(m) {
mock[m] = f(m);
});
return mock;
}