2010-12-19 04:50:30 +08:00
|
|
|
var helper = require(__dirname + '/test-helper');
|
|
|
|
|
2011-08-12 09:59:56 +08:00
|
|
|
var sink = new helper.Sink(2, function() {
|
|
|
|
helper.pg.end();
|
|
|
|
});
|
|
|
|
|
2010-12-19 04:50:30 +08:00
|
|
|
test('a single connection transaction', function() {
|
|
|
|
var connectionString = helper.connectionString();
|
|
|
|
|
|
|
|
helper.pg.connect(connectionString, assert.calls(function(err, client) {
|
|
|
|
assert.isNull(err);
|
|
|
|
|
|
|
|
client.query('begin');
|
|
|
|
|
|
|
|
var getZed = {
|
|
|
|
text: 'SELECT * FROM person WHERE name = $1',
|
|
|
|
values: ['Zed']
|
|
|
|
};
|
|
|
|
|
|
|
|
test('Zed should not exist in the database', function() {
|
|
|
|
client.query(getZed, assert.calls(function(err, result) {
|
|
|
|
assert.isNull(err);
|
|
|
|
assert.empty(result.rows);
|
|
|
|
}))
|
|
|
|
})
|
|
|
|
|
|
|
|
client.query("INSERT INTO person(name, age) VALUES($1, $2)", ['Zed', 270], assert.calls(function(err, result) {
|
|
|
|
assert.isNull(err)
|
|
|
|
}));
|
|
|
|
|
|
|
|
test('Zed should exist in the database', function() {
|
|
|
|
client.query(getZed, assert.calls(function(err, result) {
|
|
|
|
assert.isNull(err);
|
|
|
|
assert.equal(result.rows[0].name, 'Zed');
|
|
|
|
}))
|
|
|
|
})
|
|
|
|
|
|
|
|
client.query('rollback');
|
|
|
|
|
|
|
|
test('Zed should not exist in the database', function() {
|
|
|
|
client.query(getZed, assert.calls(function(err, result) {
|
|
|
|
assert.isNull(err);
|
|
|
|
assert.empty(result.rows);
|
|
|
|
sink.add();
|
|
|
|
}))
|
|
|
|
})
|
|
|
|
}))
|
|
|
|
})
|
2011-07-13 12:08:16 +08:00
|
|
|
|
|
|
|
test('gh#36', function() {
|
|
|
|
var connectionString = helper.connectionString();
|
|
|
|
helper.pg.connect(connectionString, function(err, client) {
|
|
|
|
if(err) throw err;
|
|
|
|
client.query("BEGIN");
|
|
|
|
client.query({
|
|
|
|
name: 'X',
|
|
|
|
text: "SELECT $1::INTEGER",
|
|
|
|
values: [0]
|
|
|
|
}, assert.calls(function(err, result) {
|
|
|
|
if(err) throw err;
|
|
|
|
assert.equal(result.rows.length, 1);
|
|
|
|
}))
|
|
|
|
client.query({
|
|
|
|
name: 'X',
|
|
|
|
text: "SELECT $1::INTEGER",
|
|
|
|
values: [0]
|
|
|
|
}, assert.calls(function(err, result) {
|
|
|
|
if(err) throw err;
|
|
|
|
assert.equal(result.rows.length, 1);
|
|
|
|
}))
|
2011-08-12 09:59:56 +08:00
|
|
|
client.query("COMMIT", function() {
|
|
|
|
sink.add();
|
|
|
|
})
|
2011-07-13 12:08:16 +08:00
|
|
|
})
|
|
|
|
})
|