make booo's tests pass for the native client

This commit is contained in:
brianc 2011-10-03 03:25:38 -05:00
parent 38f4b04140
commit 2835f25e3f
2 changed files with 36 additions and 5 deletions

View File

@ -12,11 +12,28 @@ var p = Connection.prototype;
var nativeConnect = p.connect;
p.connect = function() {
p.connect = function(cb) {
var self = this;
utils.buildLibpqConnectionString(this._config, function(err, conString) {
if(err) return self.emit('error', err);
if(err) {
return cb ? cb(err) : self.emit('error', err);
}
nativeConnect.call(self, conString);
if(cb) {
var errCallback;
var connectCallback = function() {
//remove single-fire connection error callback
self.removeListener('error', errCallback);
cb(null);
}
errCallback = function(err) {
//remove singel-fire connection success callback
self.removeListener('connect', connectCallback);
cb(err);
}
self.once('connect', connectCallback);
self.once('error', errCallback);
}
})
}

View File

@ -89,17 +89,31 @@ test('error handling', function(){
});
test('non-query error with callback', function() {
var client = new Client({
user:'asldkfjsadlfkj'
});
client.connect(function(error, client) {
client.connect(assert.calls(function(error, client) {
assert.ok(error);
});
}));
});
});
test('non-error calls supplied callback', function() {
var client = new Client({
user: helper.args.user,
password: helper.args.password,
host: helper.args.host,
port: helper.args.port,
database: helper.args.database
});
client.connect(assert.calls(function(err) {
assert.isNull(err);
client.end();
}))
});
test('when connecting to invalid host', function() {
var client = new Client({
user: 'brian',