node-postgres/test/unit/connection/startup-tests.js
2016-06-21 21:38:10 -05:00

88 lines
2.0 KiB
JavaScript

require(__dirname+'/test-helper');
var Connection = require(__dirname + '/../../../lib/connection');
test('connection can take existing stream', function() {
var stream = new MemoryStream();
var con = new Connection({stream: stream});
assert.equal(con.stream, stream);
});
test('using closed stream', function() {
var makeStream = function() {
var stream = new MemoryStream();
stream.readyState = 'closed';
stream.connect = function(port, host) {
this.connectCalled = true;
this.port = port;
this.host = host;
}
return stream;
};
var stream = makeStream();
var con = new Connection({stream: stream});
con.connect(1234, 'bang');
test('makes stream connect', function() {
assert.equal(stream.connectCalled, true);
});
test('uses configured port', function() {
assert.equal(stream.port, 1234);
});
test('uses configured host', function() {
assert.equal(stream.host, 'bang');
});
test('after stream connects client emits connected event', function() {
var hit = false;
con.once('connect', function() {
hit = true;
});
assert.ok(stream.emit('connect'));
assert.ok(hit);
});
test('after stream emits connected event init TCP-keepalive', function() {
var stream = makeStream();
var con = new Connection({ stream: stream, keepAlive: true });
con.connect(123, 'test');
var res = false;
stream.setKeepAlive = function(bit) {
res = bit;
};
assert.ok(stream.emit('connect'));
setTimeout(function() {
assert.equal(res, true);
})
});
});
test('using opened stream', function() {
var stream = new MemoryStream();
stream.readyState = 'open';
stream.connect = function() {
assert.ok(false, "Should not call open");
};
var con = new Connection({stream: stream});
test('does not call open', function() {
var hit = false;
con.once('connect', function() {
hit = true;
});
con.connect();
assert.ok(hit);
});
});