From 1b249e9ceb764c44e776b2f261fb726f0c06781b Mon Sep 17 00:00:00 2001 From: "Brian M. Carlson" Date: Tue, 22 Oct 2013 13:19:28 -0500 Subject: [PATCH] Add in proper error handling --- index.js | 5 +++++ test/error.js | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 test/error.js diff --git a/index.js b/index.js index d92e8402..45b26223 100644 --- a/index.js +++ b/index.js @@ -103,3 +103,8 @@ QueryStream.prototype.handleCommandComplete = function(msg) { QueryStream.prototype.handleReadyForQuery = function() { this.push(null) } + +QueryStream.prototype.handleError = function(err) { + this.connection.sync() + this.emit('error', err) +} diff --git a/test/error.js b/test/error.js new file mode 100644 index 00000000..aa3da490 --- /dev/null +++ b/test/error.js @@ -0,0 +1,24 @@ +var pg = require('pg') +var assert = require('assert') +var gonna = require('gonna') +var _ = require('lodash') +var concat = require('concat-stream') +var through = require('through') + +var QueryStream = require('../') + +var client = new pg.Client() + +var connected = gonna('connect', 100, function() { + var stream = new QueryStream('SELECT * FROM asdf num', []) + var query = client.query(stream) + query.on('error', gonna('emit error', 100, function(err) { + assert(err) + assert.equal(err.code, '42P01') + })) + var done = gonna('keep connetion alive', 100) + client.query('SELECT NOW()', done) +}) + +client.connect(connected) +client.on('drain', client.end.bind(client))