From 4bda436b2b907911ea20630fa2ad1195f5e1ed97 Mon Sep 17 00:00:00 2001 From: brianc Date: Sat, 18 Dec 2010 14:50:30 -0600 Subject: [PATCH] added test for transactions --- test/integration/client/transaction-tests.js | 48 ++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 test/integration/client/transaction-tests.js diff --git a/test/integration/client/transaction-tests.js b/test/integration/client/transaction-tests.js new file mode 100644 index 00000000..aaaaf5b1 --- /dev/null +++ b/test/integration/client/transaction-tests.js @@ -0,0 +1,48 @@ +var helper = require(__dirname + '/test-helper'); + +test('a single connection transaction', function() { + var connectionString = helper.connectionString(); + var sink = new helper.Sink(1, function() { + helper.pg.end(); + }); + + 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(); + })) + }) + + })) +})