/* eslint-env mocha */ 'use strict' const pull = require('pull-stream') const chai = require('chai') const dirtyChai = require('dirty-chai') const expect = chai.expect chai.use(dirtyChai) const TCP = require('../src') const multiaddr = require('multiaddr') describe('valid Connection', () => { let tcp beforeEach(() => { tcp = new TCP() }) const ma = multiaddr('/ip4/127.0.0.1/tcp/9090') it('get observed addrs', (done) => { let dialerObsAddrs const listener = tcp.createListener((conn) => { expect(conn).to.exist() conn.getObservedAddrs((err, addrs) => { expect(err).to.not.exist() dialerObsAddrs = addrs pull(pull.empty(), conn) }) }) listener.listen(ma, () => { const conn = tcp.dial(ma) pull( conn, pull.onEnd(endHandler) ) function endHandler () { conn.getObservedAddrs((err, addrs) => { expect(err).to.not.exist() pull(pull.empty(), conn) closeAndAssert(listener, addrs) }) } function closeAndAssert (listener, addrs) { listener.close(() => { expect(addrs[0]).to.deep.equal(ma) expect(dialerObsAddrs.length).to.equal(1) done() }) } }) }) it('get Peer Info', (done) => { const listener = tcp.createListener((conn) => { expect(conn).to.exist() conn.getPeerInfo((err, peerInfo) => { expect(err).to.exist() expect(peerInfo).to.not.exist() pull(pull.empty(), conn) }) }) listener.listen(ma, () => { const conn = tcp.dial(ma) pull(conn, pull.onEnd(endHandler)) function endHandler () { conn.getPeerInfo((err, peerInfo) => { expect(err).to.exist() expect(peerInfo).to.not.exist() listener.close(done) }) } }) }) it('set Peer Info', (done) => { const listener = tcp.createListener((conn) => { expect(conn).to.exist() conn.setPeerInfo('batatas') conn.getPeerInfo((err, peerInfo) => { expect(err).to.not.exist() expect(peerInfo).to.equal('batatas') pull(pull.empty(), conn) }) }) listener.listen(ma, () => { const conn = tcp.dial(ma) pull(conn, pull.onEnd(endHandler)) function endHandler () { conn.setPeerInfo('arroz') conn.getPeerInfo((err, peerInfo) => { expect(err).to.not.exist() expect(peerInfo).to.equal('arroz') listener.close(done) }) } }) }) })