UNPKG

869 BJavaScriptView Raw
1const EventEmitter = require('events')
2
3class MockMongooseConnection extends EventEmitter {
4 constructor (errmsg) {
5 super()
6 this.errmsg = errmsg
7
8 this.db = {
9 admin: () => ({
10 ping: (cb) => {
11 if (this.errmsg) {
12 return cb(new Error(this.errmsg))
13 }
14
15 return cb(null)
16 }
17 })
18 }
19
20 if (!errmsg) {
21 setImmediate(() => this.emit('connected'))
22 } else {
23 setImmediate(() => this.emit('error', new Error(errmsg)))
24 }
25 }
26
27 close (cb) {
28 setImmediate(() => this.emit('close'))
29
30 if (this.errmsg) {
31 return cb(new Error(this.errmsg))
32 }
33
34 return cb(null)
35 }
36}
37
38class MockMongooseClient {
39 constructor (errmsg) {
40 this.errmsg = errmsg
41 }
42
43 createConnection () {
44 return new MockMongooseConnection(this.errmsg)
45 }
46}
47
48module.exports = MockMongooseClient