Fix more tests to use query instance

This commit is contained in:
Brian M. Carlson 2017-06-10 16:29:00 -05:00 committed by Brian C
parent 2f3d72a28c
commit b8c2bebcac
14 changed files with 75 additions and 156 deletions

View File

@ -356,6 +356,10 @@ Client.prototype.query = function(config, values, callback) {
// processing to the passed object - this is how pg.Query, QueryStream, and Cursor work
if (isQueryable) {
query = config;
// accept client.query(new Query('select *'), (err, res) => { }) call signature
if (typeof values == 'function') {
query.callback = query.callback || values;
}
} else {
query = new Query(config, values, callback);
if (!query.callback) {

View File

@ -1,4 +1,5 @@
var helper = require(__dirname+"/test-helper");
var helper = require("./test-helper");
var Query = helper.pg.Query
/*
Test to trigger a bug.
@ -15,7 +16,7 @@ var big_query_rows_3 = [];
// Works
test('big simple query 1',function() {
var client = helper.client();
client.query("select 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as bla from person where name = '' or 1 = 1")
client.query(new Query("select 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as bla from person where name = '' or 1 = 1"))
.on('row', function(row) { big_query_rows_1.push(row); })
.on('error', function(error) { console.log("big simple query 1 error"); console.log(error); });
client.on('drain', client.end.bind(client));
@ -24,7 +25,7 @@ test('big simple query 1',function() {
// Works
test('big simple query 2',function() {
var client = helper.client();
client.query("select 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as bla from person where name = $1 or 1 = 1",[''])
client.query(new Query("select 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as bla from person where name = $1 or 1 = 1",['']))
.on('row', function(row) { big_query_rows_2.push(row); })
.on('error', function(error) { console.log("big simple query 2 error"); console.log(error); });
client.on('drain', client.end.bind(client));
@ -34,7 +35,7 @@ test('big simple query 2',function() {
// If test 1 and 2 are commented out it works
test('big simple query 3',function() {
var client = helper.client();
client.query("select 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as bla from person where name = $1 or 1 = 1",[''])
client.query(new Query("select 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' as bla from person where name = $1 or 1 = 1",['']))
.on('row', function(row) { big_query_rows_3.push(row); })
.on('error', function(error) { console.log("big simple query 3 error"); console.log(error); });
client.on('drain', client.end.bind(client));
@ -56,19 +57,12 @@ var runBigQuery = function(client) {
}
assert.lengthIs(result.rows, 26);
});
q.on('row', function(row) {
rows.push(row);
})
assert.emits(q, 'end', function() {
//query ended
assert.lengthIs(rows, 26);
})
}
test('many times', function() {
var client = helper.client();
for(var i = 0; i < 20; i++) {
runBigQuery(client);
runBigQuery(client);
}
client.on('drain', function() {
client.end();

View File

@ -1,4 +1,5 @@
var helper = require(__dirname+"/test-helper");
var helper = require("./test-helper");
var Query = helper.pg.Query;
//before running this test make sure you run the script create-test-tables
test("cancellation of a query", function() {
@ -11,19 +12,19 @@ test("cancellation of a query", function() {
var rows3 = 0;
var query1 = client.query(qry);
var query1 = client.query(new Query(qry));
query1.on('row', function(row) {
throw new Error('Should not emit a row')
});
var query2 = client.query(qry);
var query2 = client.query(new Query(qry));
query2.on('row', function(row) {
throw new Error('Should not emit a row')
});
var query3 = client.query(qry);
var query3 = client.query(new Query(qry));
query3.on('row', function(row) {
rows3++;
});
var query4 = client.query(qry);
var query4 = client.query(new Query(qry));
query4.on('row', function(row) {
throw new Error('Should not emit a row')
});

View File

@ -1,7 +1,7 @@
var helper = require('./test-helper');
var util = require('util');
const { pg } = helper
var pg = helper.pg
var createErorrClient = function() {

View File

@ -1,4 +1,4 @@
var helper = require(__dirname + '/test-helper');
var helper = require('./test-helper');
test("noData message handling", function() {
@ -22,7 +22,6 @@ test("noData message handling", function() {
client.query({
name: 'insert',
text: 'insert into boom(size) values($1)',
values: [101]
});
@ -30,12 +29,10 @@ test("noData message handling", function() {
name: 'fetch',
text: 'select size from boom where size < $1',
values: [101]
});
assert.emits(query, 'row', function(row) {
assert.strictEqual(row.size,100)
}, (err, res) => {
var row = res.rows[0]
assert.strictEqual(row.size, 100)
});
client.on('drain', client.end.bind(client));
});

View File

@ -3,6 +3,7 @@ var pg = helper.pg;
var config = helper.config;
test('can access results when no rows are returned', function() {
console.log('maybe fix this?', __filename)
if(config.native) return false;
var checkResult = function(result) {
assert(result.fields, 'should have fields definition');
@ -13,7 +14,8 @@ test('can access results when no rows are returned', function() {
};
pg.connect(config, assert.success(function(client, done) {
var query = client.query('select $1::text as val limit 0', ['hi'], assert.success(function(result) {
const q = new pg.Query('select $1::text as val limit 0', ['hi'])
var query = client.query(q, assert.success(function(result) {
checkResult(result);
done();
}));

View File

@ -1,48 +1,5 @@
var helper = require(__dirname +'/test-helper');
test("simple, unnamed prepared statement", function(){
var client = helper.client();
var query = client.query({
text: 'select age from person where name = $1',
values: ['Brian']
});
assert.emits(query, 'row', function(row) {
assert.equal(row.age, 20);
});
assert.emits(query, 'end', function() {
client.end();
});
});
test("use interval in prepared statement", function(){
return;
var client = helper.client();
client.query('SELECT interval \'15 days 2 months 3 years 6:12:05\' as interval', assert.success(function(result) {
var interval = result.rows[0].interval;
var query = client.query({
text: 'select cast($1 as interval) as interval',
values: [interval]
});
assert.emits(query, 'row', function(row) {
assert.equal(row.interval.seconds, 5);
assert.equal(row.interval.minutes, 12);
assert.equal(row.interval.hours, 6);
assert.equal(row.interval.days, 15);
assert.equal(row.interval.months, 2);
assert.equal(row.interval.years, 3);
});
assert.emits(query, 'end', function() {
client.end();
});
}));
});
var helper = require('./test-helper');
var Query = helper.pg.Query;
test("named prepared statement", function() {
@ -52,12 +9,12 @@ test("named prepared statement", function() {
var queryName = "user by age and like name";
var parseCount = 0;
test("first named prepared statement",function() {
var query = client.query({
test("first named prepared statement", function() {
var query = client.query(new Query({
text: 'select name from person where age <= $1 and name LIKE $2',
values: [20, 'Bri%'],
name: queryName
});
}));
assert.emits(query, 'row', function(row) {
assert.equal(row.name, 'Brian');
@ -68,11 +25,11 @@ test("named prepared statement", function() {
});
test("second named prepared statement with same name & text", function() {
var cachedQuery = client.query({
var cachedQuery = client.query(new Query({
text: 'select name from person where age <= $1 and name LIKE $2',
name: queryName,
values: [10, 'A%']
});
}));
assert.emits(cachedQuery, 'row', function(row) {
assert.equal(row.name, 'Aaron');
@ -82,28 +39,22 @@ test("named prepared statement", function() {
});
});
test("with same name, but the query text not even there batman!", function() {
var q = client.query({
test("with same name, but without query text", function() {
var q = client.query(new Query({
name: queryName,
values: [30, '%n%']
});
}));
test("gets first row", function() {
assert.emits(q, 'row', function(row) {
assert.equal(row.name, "Aaron");
// test second row is emitted as well
assert.emits(q, 'row', function(row) {
assert.equal(row.name, "Aaron");
test("gets second row", function() {
assert.emits(q, 'row', function(row) {
assert.equal(row.name, "Brian");
});
});
assert.equal(row.name, "Brian");
});
});
assert.emits(q, 'end', function() {
});
assert.emits(q, 'end', function() { });
});
});
@ -124,14 +75,9 @@ test("prepared statements on different clients", function() {
var query = client1.query({
name: statementName,
text: statement1
});
test('gets right data back', function() {
assert.emits(query, 'row', function(row) {
assert.equal(row.count, 26);
});
});
assert.emits(query, 'end', function() {
}, (err, res) => {
assert(!err);
assert.equal(res.rows[0].count, 26);
if(client2Finished) {
client1.end();
client2.end();
@ -143,11 +89,11 @@ test("prepared statements on different clients", function() {
});
test('client 2 execution', function() {
var query = client2.query({
var query = client2.query(new Query({
name: statementName,
text: statement2,
values: [11]
});
}));
test('gets right data', function() {
assert.emits(query, 'row', function(row) {
@ -192,22 +138,22 @@ test('prepared statement', function() {
};
test('with small row count', function() {
var query = client.query({
var query = client.query(new Query({
name: 'get names',
text: "SELECT name FROM zoom ORDER BY name",
rows: 1
});
}));
checkForResults(query);
})
test('with large row count', function() {
var query = client.query({
var query = client.query(new Query({
name: 'get names',
text: 'SELECT name FROM zoom ORDER BY name',
rows: 1000
})
}))
checkForResults(query);
})

View File

@ -1,4 +1,5 @@
var helper = require(__dirname + '/test-helper');
var helper = require('./test-helper');
var Query = helper.pg.Query;
var util = require('util');
function killIdleQuery(targetQuery) {
@ -39,7 +40,7 @@ test('query killed during query execution of prepared statement', function() {
// client should emit an error because it is unexpectedly disconnected
assert.emits(client, 'error')
var query1 = client.query(queryConfig, assert.calls(function(err, result) {
var query1 = client.query(new Query(queryConfig), assert.calls(function(err, result) {
assert.equal(err.message, 'terminating connection due to administrator command');
}));
@ -63,13 +64,14 @@ test('client end during query execution of prepared statement', function() {
var client = new Client(helper.args);
client.connect(assert.success(function() {
var sleepQuery = 'select pg_sleep($1)';
var query1 = client.query({
var query1 = client.query(new Query({
name: 'sleep query',
text: sleepQuery,
values: [5] },
assert.calls(function(err, result) {
assert.equal(err.message, 'Connection terminated');
}));
})));
query1.on('error', function(err) {
assert.fail('Prepared statement should not emit error');

View File

@ -1,11 +1,12 @@
var helper = require('./test-helper');
var util = require('util');
const { Query } = helper.pg;
var Query = helper.pg.Query;
test('error during query execution', function() {
var client = new Client(helper.args);
client.connect(assert.success(function() {
var sleepQuery = new Query('select pg_sleep(5)');
var queryText = 'select pg_sleep(5)'
var sleepQuery = new Query(queryText);
var pidColName = 'procpid'
var queryColName = 'current_query';
helper.versionGTE(client, '9.2.0', assert.success(function(isGreater) {
@ -26,9 +27,8 @@ test('error during query execution', function() {
setTimeout(function() {
var client2 = new Client(helper.args);
client2.connect(assert.success(function() {
var killIdleQuery = "SELECT " + pidColName + ", (SELECT pg_terminate_backend(" + pidColName + ")) AS killed FROM pg_stat_activity WHERE " + queryColName + " = $1";
client2.query(killIdleQuery, [sleepQuery], assert.calls(function(err, res) {
console.log('\nresult', res)
var killIdleQuery = `SELECT ${pidColName}, (SELECT pg_cancel_backend(${pidColName})) AS killed FROM pg_stat_activity WHERE ${queryColName} LIKE $1`;
client2.query(killIdleQuery, [queryText], assert.calls(function(err, res) {
assert.ifError(err);
assert.equal(res.rows.length, 1);
client2.end();

View File

@ -20,16 +20,10 @@ test('should return insert metadata', function() {
assert.isNull(err);
if(hasRowCount) assert.equal(result.rowCount, 1);
assert.equal(result.command, 'SELECT');
done();
process.nextTick(pg.end.bind(pg));
}));
}));
assert.emits(q, 'end', function(result) {
assert.equal(result.command, "INSERT");
if(hasRowCount) assert.equal(result.rowCount, 1);
done();
});
}));
}));
}));

View File

@ -26,8 +26,5 @@ test('returns results as array', function() {
checkRow(result.rows[0]);
client.end();
}));
assert.emits(query, 'row', function(row) {
checkRow(row);
});
}));
});

View File

@ -1,10 +1,12 @@
var helper = require(__dirname+"/test-helper");
var helper = require("./test-helper");
var Query = helper.pg.Query;
//before running this test make sure you run the script create-test-tables
test("simple query interface", function() {
var client = helper.client();
var query = client.query("select name from person order by name");
var query = client.query(new Query("select name from person order by name"));
client.on('drain', client.end.bind(client));
@ -36,34 +38,13 @@ test("simple query interface", function() {
});
});
test("simple query interface using addRow", function() {
var client = helper.client();
var query = client.query("select name from person order by name");
client.on('drain', client.end.bind(client));
query.on('row', function(row, result) {
assert.ok(result);
result.addRow(row);
});
query.on('end', function(result) {
assert.lengthIs(result.rows, 26, "result returned wrong number of rows");
assert.lengthIs(result.rows, result.rowCount);
assert.equal(result.rows[0].name, "Aaron");
assert.equal(result.rows[25].name, "Zanzabar");
});
});
test("prepared statements do not mutate params", function() {
var client = helper.client();
var params = [1]
var query = client.query("select name from person where $1 = 1 order by name", params);
var query = client.query(new Query("select name from person where $1 = 1 order by name", params));
assert.deepEqual(params, [1])
@ -86,7 +67,7 @@ test("multiple simple queries", function() {
var client = helper.client();
client.query({ text: "create temp table bang(id serial, name varchar(5));insert into bang(name) VALUES('boom');"})
client.query("insert into bang(name) VALUES ('yes');");
var query = client.query("select name from bang");
var query = client.query(new Query("select name from bang"));
assert.emits(query, 'row', function(row) {
assert.equal(row['name'], 'boom');
assert.emits(query, 'row', function(row) {
@ -100,7 +81,7 @@ test("multiple select statements", function() {
var client = helper.client();
client.query("create temp table boom(age integer); insert into boom(age) values(1); insert into boom(age) values(2); insert into boom(age) values(3)");
client.query({text: "create temp table bang(name varchar(5)); insert into bang(name) values('zoom');"});
var result = client.query({text: "select age from boom where age < 2; select name from bang"});
var result = client.query(new Query({text: "select age from boom where age < 2; select name from bang"}));
assert.emits(result, 'row', function(row) {
assert.strictEqual(row['age'], 1);
assert.emits(result, 'row', function(row) {

View File

@ -1,4 +1,5 @@
var helper = require(__dirname + '/test-helper');
var pg = helper.pg;
var sink;
var testForTypeCoercion = function(type){
@ -13,10 +14,10 @@ var testForTypeCoercion = function(type){
assert.isNull(err);
}));
var query = client.query({
var query = client.query(new pg.Query({
name: 'get type ' + type.name ,
text: 'select col from test_type'
});
}));
query.on('error', function(err) {
console.log(err);
throw err;
@ -128,11 +129,11 @@ test("timestampz round trip", function() {
name: 'add date',
values: ['now', now]
});
var result = client.query({
var result = client.query(new pg.Query({
name: 'get date',
text: 'select * from date_tests where name = $1',
values: ['now']
});
}));
assert.emits(result, 'row', function(row) {
var date = row.tstz;

View File

@ -17,8 +17,8 @@ helper.testPoolSize = function(max) {
client.query("select count(*) as c from person", function(err, result) {
assert.equal(result.rows[0].c, 26)
})
var query = client.query("SELECT * FROM NOW()")
query.on('end',function() {
var query = client.query("SELECT * FROM NOW()", (err) => {
assert(!err)
sink.add();
done();
})