'use strict' var helper = require(__dirname + '/test-helper') var Connection = require(__dirname + '/../../../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) }) }) }) })