Make pool name consistent on missing config params (#1279)
* Going red: using a config object creates two pools when missing some params It should only create a pool in a consistent way, even if some params are not provided in the first place. * Delay the pool name generation to make it consistent between calls * Don't fallback to empty object as config is already defined
This commit is contained in:
parent
e5f0e5d36a
commit
4cd56cc4f8
@ -54,7 +54,6 @@ PG.prototype.connect = function(config, callback) {
|
||||
callback = config;
|
||||
config = null;
|
||||
}
|
||||
var poolName = JSON.stringify(config || {});
|
||||
if (typeof config == 'string') {
|
||||
config = new ConnectionParameters(config);
|
||||
}
|
||||
@ -66,6 +65,7 @@ PG.prototype.connect = function(config, callback) {
|
||||
config.idleTimeoutMillis = config.idleTimeoutMillis || config.poolIdleTimeout || defaults.poolIdleTimeout;
|
||||
config.log = config.log || config.poolLog || defaults.poolLog;
|
||||
|
||||
var poolName = JSON.stringify(config);
|
||||
this._pools[poolName] = this._pools[poolName] || new this.Pool(config);
|
||||
var pool = this._pools[poolName];
|
||||
if(!pool.listeners('error').length) {
|
||||
|
@ -0,0 +1,13 @@
|
||||
var helper = require(__dirname + "/../test-helper");
|
||||
var pg = require(__dirname + "/../../../lib");
|
||||
|
||||
pg.connect(helper.config, assert.success(function(client, done) {
|
||||
assert.equal(Object.keys(pg._pools).length, 1);
|
||||
pg.connect(helper.config, assert.success(function(client2, done2) {
|
||||
assert.equal(Object.keys(pg._pools).length, 1);
|
||||
|
||||
done();
|
||||
done2();
|
||||
pg.end();
|
||||
}));
|
||||
}));
|
Loading…
Reference in New Issue
Block a user