mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
* Pass callback to client.end * Add test for pool.end method * fix: remove excessive _pulseQueue call * fix: context problem * fix: test resolve should be called when the last client is removed * fix: wait for pool.end() Because when you don't pass a callback to .end() it always returns a promise * fix: handle idle timeout test data race --------- Co-authored-by: Asadbek Raimov <asadbekraimov642@gmail.com>
51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
'use strict'
|
|
const co = require('co')
|
|
const expect = require('expect.js')
|
|
|
|
const describe = require('mocha').describe
|
|
const it = require('mocha').it
|
|
|
|
const Pool = require('../')
|
|
|
|
describe('pool ending', () => {
|
|
it('ends without being used', (done) => {
|
|
const pool = new Pool()
|
|
pool.end(done)
|
|
})
|
|
|
|
it('ends with a promise', () => {
|
|
return new Pool().end()
|
|
})
|
|
|
|
it(
|
|
'ends with clients',
|
|
co.wrap(function* () {
|
|
const pool = new Pool()
|
|
const res = yield pool.query('SELECT $1::text as name', ['brianc'])
|
|
expect(res.rows[0].name).to.equal('brianc')
|
|
return pool.end()
|
|
})
|
|
)
|
|
|
|
it(
|
|
'allows client to finish',
|
|
co.wrap(function* () {
|
|
const pool = new Pool()
|
|
const query = pool.query('SELECT $1::text as name', ['brianc'])
|
|
yield pool.end()
|
|
const res = yield query
|
|
expect(res.rows[0].name).to.equal('brianc')
|
|
})
|
|
)
|
|
|
|
it('pool.end() - finish pending queries', async () => {
|
|
const pool = new Pool({ max: 20 })
|
|
let completed = 0
|
|
for (let x = 1; x <= 20; x++) {
|
|
pool.query('SELECT $1::text as name', ['brianc']).then(() => completed++)
|
|
}
|
|
await pool.end()
|
|
expect(completed).to.equal(20)
|
|
})
|
|
})
|