'use strict' var helper = require('./test-helper') const suite = new helper.Suite() const pg = helper.pg const client = new pg.Client() client.connect( assert.success(function () { client.query('begin') var getZed = { text: 'SELECT * FROM person WHERE name = $1', values: ['Zed'], } suite.test('name should not exist in the database', function (done) { client.query( getZed, assert.calls(function (err, result) { assert(!err) assert.empty(result.rows) done() }) ) }) suite.test('can insert name', (done) => { client.query( 'INSERT INTO person(name, age) VALUES($1, $2)', ['Zed', 270], assert.calls(function (err, result) { assert(!err) done() }) ) }) suite.test('name should exist in the database', function (done) { client.query( getZed, assert.calls(function (err, result) { assert(!err) assert.equal(result.rows[0].name, 'Zed') done() }) ) }) suite.test('rollback', (done) => { client.query('rollback', done) }) suite.test('name should not exist in the database', function (done) { client.query( getZed, assert.calls(function (err, result) { assert(!err) assert.empty(result.rows) client.end(done) }) ) }) }) ) suite.test('gh#36', function (cb) { const pool = new pg.Pool() pool.connect( assert.success(function (client, done) { 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) }) ) client.query('COMMIT', function () { done() pool.end(cb) }) }) ) })