'use strict' var helper = require('./test-helper') var Connection = require('../../../lib/connection') test('drain', function () { var con = new Connection({ stream: 'NO' }) var client = new Client({ connection: con }) con.connect = function () { con.emit('connect') } con.query = function () {} client.connect() var raisedDrain = false client.on('drain', function () { raisedDrain = true }) client.query('hello') client.query('sup') client.query('boom') test('with pending queries', function () { test('does not emit drain', function () { assert.equal(raisedDrain, false) }) }) test('after some queries executed', function () { con.emit('readyForQuery') test('does not emit drain', function () { assert.equal(raisedDrain, false) }) }) test('when all queries are sent', function () { con.emit('readyForQuery') con.emit('readyForQuery') test('does not emit drain', function () { assert.equal(raisedDrain, false) }) }) test('after last query finishes', function () { con.emit('readyForQuery') test('emits drain', function () { process.nextTick(function () { assert.ok(raisedDrain) }) }) }) })