pg-pool
Advanced tools
Comparing version 3.5.2 to 3.6.0
@@ -333,2 +333,4 @@ 'use strict' | ||
this.emit('release', err, client) | ||
// TODO(bmc): expose a proper, public interface _queryable and _ending | ||
@@ -335,0 +337,0 @@ if (err || this.ending || !client._queryable || client._ending || client._poolUseCount >= this.options.maxUses) { |
{ | ||
"name": "pg-pool", | ||
"version": "3.5.2", | ||
"version": "3.6.0", | ||
"description": "Connection pool for node-postgres", | ||
@@ -40,3 +40,3 @@ "main": "index.js", | ||
}, | ||
"gitHead": "c99fb2c127ddf8d712500db2c7b9a5491a178655" | ||
"gitHead": "ee302cbcf10437e34fd05d70fc003c357b14c654" | ||
} |
@@ -63,2 +63,38 @@ 'use strict' | ||
it('emits release every time a client is released', function (done) { | ||
const pool = new Pool() | ||
let releaseCount = 0 | ||
pool.on('release', function (err, client) { | ||
expect(err instanceof Error).not.to.be(true) | ||
expect(client).to.be.ok() | ||
releaseCount++ | ||
}) | ||
for (let i = 0; i < 10; i++) { | ||
pool.connect(function (err, client, release) { | ||
if (err) return done(err) | ||
release() | ||
}) | ||
pool.query('SELECT now()') | ||
} | ||
setTimeout(function () { | ||
expect(releaseCount).to.be(20) | ||
pool.end(done) | ||
}, 100) | ||
}) | ||
it('emits release with an error if client is released due to an error', function (done) { | ||
const pool = new Pool() | ||
pool.connect(function (err, client, release) { | ||
expect(err).to.equal(undefined) | ||
const releaseError = new Error('problem') | ||
pool.once('release', function (err, errClient) { | ||
console.log(err, errClient) | ||
expect(err).to.equal(releaseError) | ||
expect(errClient).to.equal(client) | ||
pool.end(done) | ||
}) | ||
release(releaseError) | ||
}) | ||
}) | ||
it('emits error and client if an idle client in the pool hits an error', function (done) { | ||
@@ -65,0 +101,0 @@ const pool = new Pool() |
@@ -24,3 +24,3 @@ 'use strict' | ||
const pool = new Pool({ maxLifetimeSeconds: 1 }) | ||
pool.query('SELECT pg_sleep(1.01)') | ||
pool.query('SELECT pg_sleep(1.4)') | ||
pool.on('remove', () => { | ||
@@ -37,6 +37,7 @@ console.log('expired while busy - on-remove event') | ||
const pool = new Pool({ maxLifetimeSeconds: 1 }) | ||
let query = pool.query('SELECT pg_sleep(1)') | ||
let query = pool.query('SELECT pg_sleep(1.4)') | ||
expect(pool.expiredCount).to.equal(0) | ||
expect(pool.totalCount).to.equal(1) | ||
yield query | ||
yield new Promise((resolve) => setTimeout(resolve, 100)) | ||
expect(pool.expiredCount).to.equal(0) | ||
@@ -43,0 +44,0 @@ expect(pool.totalCount).to.equal(0) |
69496
1656