Charmander caa6517999 Fix disconnection tests for pg-pool 2.0.7 (#1946)
* Require latest pg-pool ^2.0.7

to limit variability of next pg’s installations.

* Ignore EPIPE when writing termination message

I don’t know why this wasn’t necessary for tests to pass before…

* Fix disconnection tests for pg-pool 2.0.7

In pg-pool 2.0.7, checked-out clients became responsible for their own 'error' events.

brianc/node-pg-pool#123
2019-11-11 15:10:18 -03:00

26 lines
868 B
JavaScript

'use strict'
var helper = require(__dirname + '/../test-helper')
var exec = require('child_process').exec
helper.pg.defaults.poolIdleTimeout = 1000
const pool = new helper.pg.Pool()
pool.connect(function (err, client, done) {
assert.ifError(err)
client.once('error', function (err) {
client.on('error', (err) => {})
done(err)
})
client.query('SELECT pg_backend_pid()', function (err, result) {
assert.ifError(err)
var pid = result.rows[0].pg_backend_pid
var psql = 'psql'
if (helper.args.host) psql = psql + ' -h ' + helper.args.host
if (helper.args.port) psql = psql + ' -p ' + helper.args.port
if (helper.args.user) psql = psql + ' -U ' + helper.args.user
exec(psql + ' -c "select pg_terminate_backend(' + pid + ')" template1', assert.calls(function (error, stdout, stderr) {
assert.ifError(error)
}))
})
})