-
Notifications
You must be signed in to change notification settings - Fork 323
/
Copy pathgeneric-pool.spec.js
80 lines (69 loc) · 2.06 KB
/
generic-pool.spec.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
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
'use strict'
require('..')
const { storage } = require('../../datadog-core')
describe('Instrumentation', () => {
let genericPool
let pool
describe('generic-pool', () => {
withVersions('generic-pool', 'generic-pool', '2', version => {
beforeEach(() => {
genericPool = require(`../../../versions/generic-pool@${version}`).get()
})
beforeEach(() => {
pool = new genericPool.Pool({
create (cb) {
setImmediate(() => {
cb(null, {})
})
},
destroy () {}
})
})
it('should run the acquire() callback in context where acquire() was called', done => {
const store = 'store'
storage('legacy').run(store, () => {
// eslint-disable-next-line n/handle-callback-err
pool.acquire((err, resource) => {
pool.release(resource)
expect(storage('legacy').getStore()).to.equal(store)
done()
})
})
})
})
withVersions('generic-pool', 'generic-pool', '>=3', version => {
beforeEach(() => {
genericPool = require(`../../../versions/generic-pool@${version}`).get()
})
beforeEach(() => {
pool = genericPool.createPool({
create () {
return Promise.resolve({})
},
destroy () {}
})
})
it('should run the acquire() callback in context where acquire() was called', done => {
const store = 'store'
const store2 = 'store2'
storage('legacy').run(store, () => {
pool.acquire()
.then(resource => {
pool.release(resource)
expect(storage('legacy').getStore()).to.equal(store)
})
.catch(done)
})
storage('legacy').run(store2, () => {
pool.acquire()
.then(resource => {
pool.release(resource)
expect(storage('legacy').getStore()).to.equal(store2)
done()
})
.catch(done)
})
})
})
})
})