| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 'use strict'const co = require('co')const expect = require('expect.js')const describe = require('mocha').describeconst it = require('mocha').itconst path = require('path')const Pool = require('../')describe('lifetime timeout', () => {  it('connection lifetime should expire and remove the client', (done) => {    const pool = new Pool({ maxLifetimeSeconds: 1 })    pool.query('SELECT NOW()')    pool.on('remove', () => {      console.log('expired while idle - on-remove event')      expect(pool.expiredCount).to.equal(0)      expect(pool.totalCount).to.equal(0)      done()    })  })  it('connection lifetime should expire and remove the client after the client is done working', (done) => {    const pool = new Pool({ maxLifetimeSeconds: 1 })    pool.query('SELECT pg_sleep(1.4)')    pool.on('remove', () => {      console.log('expired while busy - on-remove event')      expect(pool.expiredCount).to.equal(0)      expect(pool.totalCount).to.equal(0)      done()    })  })  it(    'can remove expired clients and recreate them',    co.wrap(function* () {      const pool = new Pool({ maxLifetimeSeconds: 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)      expect(pool.totalCount).to.equal(0)      yield pool.query('SELECT NOW()')      expect(pool.expiredCount).to.equal(0)      expect(pool.totalCount).to.equal(1)    })  )})
 |