mirror of
https://github.com/fluencelabs/js-libp2p-tcp
synced 2025-04-25 23:42:32 +00:00
56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
/* eslint-env mocha */
|
|
'use strict'
|
|
|
|
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', async () => {
|
|
// Create a Promise that resolves when a connection is handled
|
|
let handled
|
|
const handlerPromise = new Promise((resolve) => {
|
|
handled = resolve
|
|
})
|
|
|
|
const handler = async (conn) => {
|
|
expect(conn).to.exist()
|
|
const dialerObsAddrs = await conn.getObservedAddrs()
|
|
handled(dialerObsAddrs)
|
|
}
|
|
|
|
// Create a listener with the handler
|
|
const listener = tcp.createListener(handler)
|
|
|
|
// Listen on the multi-address
|
|
await listener.listen(ma)
|
|
|
|
// Dial to that same address
|
|
const conn = await tcp.dial(ma)
|
|
const addrs = await conn.getObservedAddrs()
|
|
|
|
// Wait for the incoming dial to be handled
|
|
const dialerObsAddrs = await handlerPromise
|
|
|
|
// Close the listener
|
|
await listener.close()
|
|
|
|
// The addresses should match
|
|
expect(addrs.length).to.equal(1)
|
|
expect(addrs[0]).to.deep.equal(ma)
|
|
expect(dialerObsAddrs.length).to.equal(1)
|
|
expect(dialerObsAddrs[0]).to.exist()
|
|
})
|
|
})
|