56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
var helper = require(__dirname + '/test-helper');
|
|
var pg = require(__dirname + '/../../../lib');
|
|
|
|
if(helper.args.native) {
|
|
pg = require(__dirname + '/../../../lib').native;
|
|
}
|
|
|
|
var testDrainOfClientWithPendingQueries = function() {
|
|
pg.connect(helper.connectionString(), assert.success(function(client) {
|
|
test('when there are pending queries and client is resumed', function() {
|
|
var drainCount = 0;
|
|
client.on('drain', function() {
|
|
drainCount++;
|
|
});
|
|
client.pauseDrain();
|
|
client.query('SELECT NOW()', function() {
|
|
client.query('SELECT NOW()', function() {
|
|
assert.equal(drainCount, 0);
|
|
process.nextTick(function() {
|
|
assert.equal(drainCount, 1);
|
|
pg.end();
|
|
});
|
|
});
|
|
client.resumeDrain();
|
|
assert.equal(drainCount, 0);
|
|
});
|
|
});
|
|
}));
|
|
};
|
|
|
|
pg.connect(helper.connectionString(), assert.success(function(client) {
|
|
var drainCount = 0;
|
|
client.on('drain', function() {
|
|
drainCount++;
|
|
});
|
|
test('pauseDrain and resumeDrain on simple client', function() {
|
|
client.pauseDrain();
|
|
client.resumeDrain();
|
|
process.nextTick(assert.calls(function() {
|
|
assert.equal(drainCount, 0);
|
|
test('drain is paused', function() {
|
|
client.pauseDrain();
|
|
client.query('SELECT NOW()', assert.success(function() {
|
|
process.nextTick(function() {
|
|
assert.equal(drainCount, 0);
|
|
client.resumeDrain();
|
|
assert.equal(drainCount, 1);
|
|
testDrainOfClientWithPendingQueries();
|
|
});
|
|
}));
|
|
});
|
|
}));
|
|
});
|
|
}));
|
|
|