From 568c44a2ae087c7d814f88d9107ead8f27cea050 Mon Sep 17 00:00:00 2001 From: lenemson Date: Wed, 7 Jun 2017 15:49:16 +0200 Subject: [PATCH] Add interface to generic-pool getters --- index.js | 12 ++++++++++++ test/index.js | 22 ++++++++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/index.js b/index.js index aec3a1e..9663b30 100644 --- a/index.js +++ b/index.js @@ -172,3 +172,15 @@ Pool.prototype.end = function (cb) { }.bind(this)) }.bind(this)) } + +Pool.prototype.size = function () { + return this.pool.getPoolSize() +} + +Pool.prototype.available = function () { + return this.pool.availableObjectsCount() +} + +Pool.prototype.borrowed = function () { + return this.pool.inUseObjectsCount() +} diff --git a/test/index.js b/test/index.js index 3f2b99d..682ad4b 100644 --- a/test/index.js +++ b/test/index.js @@ -76,6 +76,9 @@ describe('pool', function () { it('removes client if it errors in background', function (done) { var pool = new Pool() pool.connect(function (err, client, release) { + expect(pool.size()).to.be(1) + expect(pool.available()).to.be(0) + expect(pool.borrowed()).to.be(1) release() if (err) return done(err) client.testString = 'foo' @@ -84,6 +87,9 @@ describe('pool', function () { }, 10) }) pool.on('error', function (err) { + expect(pool.size()).to.be(0) + expect(pool.available()).to.be(0) + expect(pool.borrowed()).to.be(0) expect(err.message).to.be('on purpose') expect(err.client).to.not.be(undefined) expect(err.client.testString).to.be('foo') @@ -135,12 +141,15 @@ describe('pool', function () { it('connects and disconnects', function () { var pool = new Pool() return pool.connect().then(function (client) { - expect(pool.pool.availableObjectsCount()).to.be(0) + expect(pool.size()).to.be(1) + expect(pool.available()).to.be(0) + expect(pool.borrowed()).to.be(1) return client.query('select $1::text as name', ['hi']).then(function (res) { expect(res.rows).to.eql([{ name: 'hi' }]) client.release() - expect(pool.pool.getPoolSize()).to.be(1) - expect(pool.pool.availableObjectsCount()).to.be(1) + expect(pool.size()).to.be(1) + expect(pool.available()).to.be(1) + expect(pool.borrowed()).to.be(0) return pool.end() }) }) @@ -157,7 +166,7 @@ describe('pool', function () { }) }).then(function (res) { expect(res).to.have.length(30) - expect(pool.pool.getPoolSize()).to.be(9) + expect(pool.size()).to.be(9) return pool.end() }) }) @@ -168,8 +177,9 @@ describe('pool', function () { return pool.query('SELECT $1::text as name', ['hi']) }).then(function (queries) { expect(queries).to.have.length(30) - expect(pool.pool.getPoolSize()).to.be(9) - expect(pool.pool.availableObjectsCount()).to.be(9) + expect(pool.size()).to.be(9) + expect(pool.available()).to.be(9) + expect(pool.borrowed()).to.be(0) return pool.end() }) })