UNPKG

telehash-tcp4

Version:

Transport bindings for telehash to tcp4

80 lines (68 loc) 2.05 kB
var expect = require('chai').expect; var ext = require('../index.js'); describe('tcp4', function(){ var mockMesh = { public:{}, lib:{Pipe:function(){return {send:function(p,l,cb){cb()}}},log:console}, receive:function(){} }; it('exports an object', function(){ expect(ext).to.be.a('object'); }); it('is an extension', function(){ expect(ext.mesh).to.be.a('function'); expect(ext.name).to.be.equal('tcp4'); }); it('extends a mock mesh', function(done){ ext.mesh(mockMesh, function(err, tp){ expect(err).to.not.exist; expect(tp).to.be.a('object'); expect(tp.pipe).to.be.a('function'); expect(tp.paths).to.be.a('function'); expect(tp.server).to.exist; done(); }); }); it('returns paths array', function(done){ ext.mesh(mockMesh, function(err, tp){ expect(err).to.not.exist; var paths = tp.paths(); expect(Array.isArray(paths)).to.be.true; done(); }); }); it('returns a public path', function(done){ mockMesh.public = {ipv4:'1.2.3.4'} ext.mesh(mockMesh, function(err, tp){ expect(err).to.not.exist; var paths = tp.paths().filter(function(path){return path.ip == '1.2.3.4'}); expect(paths.length).to.be.equal(1); done(); }); }); it('skips unknown pipe', function(done){ ext.mesh(mockMesh, function(err, tp){ expect(err).to.not.exist; expect(tp.pipe(false, {}, function(){})).to.be.false; done(); }); }); it('creates a pipe', function(done){ ext.mesh(mockMesh, function(err, tp){ expect(err).to.not.exist; tp.pipe(false, {type:'tcp4',ip:'127.0.0.1',port:42424}, function(pipe){ expect(pipe).to.exist; done(); }); }); }); it('sends a packet', function(done){ ext.mesh(mockMesh, function(err, tp){ expect(err).to.not.exist; tp.pipe(false, {type:'tcp4',ip:'127.0.0.1',port:42424}, function(pipe){ expect(pipe).to.exist; pipe.send({},false,done); }); }); }); })