mirror of
https://github.com/brianc/node-postgres.git
synced 2026-01-18 15:55:05 +00:00
91 lines
1.8 KiB
JavaScript
91 lines
1.8 KiB
JavaScript
'use strict'
|
|
var async = require('async')
|
|
var helper = require('../test-helper')
|
|
const suite = new helper.Suite()
|
|
|
|
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]
|
|
|
|
suite.test('test if query fails', function (done) {
|
|
async.series(
|
|
steps,
|
|
assert.success(function () {
|
|
db.end()
|
|
done()
|
|
})
|
|
)
|
|
})
|
|
|
|
suite.test('test if prepare works but bind fails', function (done) {
|
|
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()
|
|
done()
|
|
})
|
|
)
|
|
})
|
|
)
|
|
})
|