node-query/node_modules/pg/test/integration/gh-issues/600-tests.js

78 lines
1.7 KiB
JavaScript

var async = require('async');
var helper = require('../test-helper');
var db = helper.client();
function createTableFoo(callback){
db.query("create temp table foo(column1 int, column2 int)", callback);
}
function createTableBar(callback){
db.query("create temp table bar(column1 text, column2 text)", callback);
}
function insertDataFoo(callback){
db.query({
name: 'insertFoo',
text: 'insert into foo values($1,$2)',
values:['one','two']
}, callback );
}
function insertDataBar(callback){
db.query({
name: 'insertBar',
text: 'insert into bar values($1,$2)',
values:['one','two']
}, callback );
}
function startTransaction(callback) {
db.query('BEGIN', callback);
}
function endTransaction(callback) {
db.query('COMMIT', callback);
}
function doTransaction(callback) {
// The transaction runs startTransaction, then all queries, then endTransaction,
// no matter if there has been an error in a query in the middle.
startTransaction(function() {
insertDataFoo(function() {
insertDataBar(function() {
endTransaction( callback );
});
});
});
}
var steps = [
createTableFoo,
createTableBar,
doTransaction,
insertDataBar
]
test('test if query fails', function() {
async.series(steps, assert.success(function() {
db.end()
}))
})
test('test if prepare works but bind fails', function() {
var client = helper.client();
var q = {
text: 'SELECT $1::int as name',
values: ['brian'],
name: 'test'
};
client.query(q, assert.calls(function(err, res) {
q.values = [1];
client.query(q, assert.calls(function(err, res) {
assert.ifError(err);
client.end();
}));
}));
});