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 stream = new MemoryStream(); stream.readyState = 'closed'; stream.connect = function(port, host) { this.connectCalled = true; this.port = port; this.host = host; } 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('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); }); });