mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
Fix more tests to use query instance
This commit is contained in:
parent
2f3d72a28c
commit
b8c2bebcac
@ -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) {
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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')
|
||||
});
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
var helper = require('./test-helper');
|
||||
var util = require('util');
|
||||
|
||||
const { pg } = helper
|
||||
var pg = helper.pg
|
||||
|
||||
|
||||
var createErorrClient = function() {
|
||||
|
||||
@ -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));
|
||||
|
||||
});
|
||||
|
||||
@ -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();
|
||||
}));
|
||||
|
||||
@ -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);
|
||||
})
|
||||
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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();
|
||||
});
|
||||
|
||||
}));
|
||||
}));
|
||||
}));
|
||||
|
||||
@ -26,8 +26,5 @@ test('returns results as array', function() {
|
||||
checkRow(result.rows[0]);
|
||||
client.end();
|
||||
}));
|
||||
assert.emits(query, 'row', function(row) {
|
||||
checkRow(row);
|
||||
});
|
||||
}));
|
||||
});
|
||||
|
||||
@ -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) {
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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();
|
||||
})
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user