UNPKG

kademlia-dht

Version:

Network-agnostic Kademlia Distributed Hash Table

46 lines (37 loc) 1.37 kB
'use strict'; var MockRpc = require('../lib/mock-rpc.js'); var Id = require('../lib/id.js'); var SOURCE_ENDPOINT = 'localhost:9876'; var TARGET_ENDPOINT = 'localhost:4321'; var SOURCE_ID = Id.fromKey('fake'); describe('MockRpc', function () { var rpc, rpc2; beforeEach(function () { rpc = new MockRpc(SOURCE_ENDPOINT); rpc2 = new MockRpc(TARGET_ENDPOINT); }); it('#endpoint should be correct', function () { rpc.endpoint.should.equal(SOURCE_ENDPOINT); }); describe('#send()', function () { it('should callback when the message is replied to', function (cb) { rpc2.receive('ping', sinon.spy(function (endpoint, payload) { payload.id.should.equal(SOURCE_ID); endpoint.should.equal(SOURCE_ENDPOINT); })); rpc.send('ping', TARGET_ENDPOINT, {id: SOURCE_ID}, function (err) { should.not.exist(err); rpc2.receive('ping').should.be.have.been.called; cb(); }); }); it('should timeout when no remote node', function (cb) { rpc.send('ping', 'invalid endpoint', {id: SOURCE_ID}, function (err) { should.exist(err); err.code.should.equal('ETIMEDOUT'); cb(); }); }); }); });