node-postgres/test/integration/connection/test-helper.js

43 lines
1.4 KiB
JavaScript
Raw Normal View History

2010-10-24 09:26:24 +08:00
var net = require('net');
2010-10-25 14:30:14 +08:00
var helper = require(__dirname+'/../test-helper');
2011-02-24 09:50:43 +08:00
var Connection = require('connection');
2010-10-26 10:43:55 +08:00
var connect = function(callback) {
var username = helper.args.user;
var database = helper.args.database;
var con = new Connection({stream: new net.Stream()});
con.on('error', function(error){
console.log(error);
throw new Error("Connection error");
});
con.connect(helper.args.port || '5432', helper.args.host || 'localhost');
2010-10-26 10:43:55 +08:00
con.once('connect', function() {
con.startup({
2010-10-24 09:26:24 +08:00
user: username,
database: database
});
2010-10-26 10:43:55 +08:00
con.once('authenticationCleartextPassword', function(){
con.password(helper.args.password);
});
2010-10-26 10:43:55 +08:00
con.once('authenticationMD5Password', function(msg){
//need js client even if native client is included
var client = require(__dirname +"/../../../lib/client");
var inner = client.md5(helper.args.password+helper.args.user);
var outer = client.md5(inner + msg.salt.toString('binary'));
2010-10-26 10:43:55 +08:00
con.password("md5"+outer);
});
2010-10-24 09:26:24 +08:00
con.once('readyForQuery', function() {
con.query('create temp table ids(id integer)');
con.once('readyForQuery', function() {
con.query('insert into ids(id) values(1); insert into ids(id) values(2);');
con.once('readyForQuery', function() {
callback(con);
});
});
2010-10-24 09:26:24 +08:00
});
});
};
module.exports = {
connect: connect
};