UNPKG

880 BJavaScriptView Raw
1const EventEmitter = require('events')
2
3class MockIORedisClient extends EventEmitter {
4 constructor (shouldConnect, errmsg = '') {
5 super()
6 this.shouldConnect = shouldConnect
7 this.errmsg = errmsg
8
9 if (shouldConnect) {
10 setImmediate(() => this.emit('connect'))
11 } else {
12 setImmediate(() => this.emit('error', new Error(errmsg)))
13 }
14 }
15
16 connect () {
17 return this._mockEvent('connect')
18 }
19
20 disconnect () {
21 return this._mockEvent('close')
22 }
23
24 ping () {
25 return this._mockEvent('ping')
26 }
27
28 _mockEvent (evt) {
29 return new Promise((resolve, reject) => {
30 if (this.shouldConnect) {
31 setImmediate(() => this.emit(evt))
32 return resolve(true)
33 }
34
35 setImmediate(() => this.emit('error', new Error(this.errmsg)))
36 return reject(new Error(this.errmsg))
37 })
38 }
39}
40
41module.exports = MockIORedisClient