Skip to content

Commit c2bd2fa

Browse files
committed
Add a specific test for pool resource counters after purge
1 parent 27cd5c1 commit c2bd2fa

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

test/internal/pool.test.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,54 @@ describe('Pool', () => {
187187
});
188188
});
189189

190+
it('clears out resource counters even after purge', (done) => {
191+
// Given a pool that allocates
192+
let counter = 0;
193+
const address1 = ServerAddress.fromUrl('bolt://localhost:7687');
194+
const address2 = ServerAddress.fromUrl('bolt://localhost:7688');
195+
const pool = new Pool((server, release) => Promise.resolve(new Resource(server, counter++, release)),
196+
res => {
197+
res.destroyed = true;
198+
return true;
199+
}
200+
);
201+
202+
// When
203+
const p00 = pool.acquire(address1);
204+
const p01 = pool.acquire(address1);
205+
const p10 = pool.acquire(address2);
206+
const p11 = pool.acquire(address2);
207+
const p12 = pool.acquire(address2);
208+
const pall = Promise.all([p00, p01, p10, p11, p12]).then(values => {
209+
expect(pool.activeResourceCount(address1)).toEqual(2);
210+
expect(pool.activeResourceCount(address2)).toEqual(3);
211+
212+
expect(pool.has(address1)).toBeTruthy();
213+
expect(pool.has(address2)).toBeTruthy();
214+
215+
values[0].close();
216+
217+
expect(pool.activeResourceCount(address1)).toEqual(1);
218+
219+
pool.purge(address1);
220+
221+
expect(pool.activeResourceCount(address1)).toEqual(1);
222+
223+
values[1].close();
224+
225+
expect(pool.activeResourceCount(address1)).toEqual(0);
226+
expect(pool.activeResourceCount(address2)).toEqual(3);
227+
228+
expect(values[0].destroyed).toBeTruthy();
229+
expect(values[1].destroyed).toBeTruthy();
230+
231+
expect(pool.has(address1)).toBeFalsy();
232+
expect(pool.has(address2)).toBeTruthy();
233+
234+
done();
235+
});
236+
});
237+
190238
it('destroys resource when key was purged', (done) => {
191239
let counter = 0;
192240
const address = ServerAddress.fromUrl('bolt://localhost:7687');

0 commit comments

Comments
 (0)