test: use port 0

docs: add some more jsdocs

License: MIT
Signed-off-by: Jacob Heun <jacobheun@gmail.com>
This commit is contained in:
Jacob Heun 2019-04-19 11:00:51 +02:00
parent 330853f470
commit 1eca9d656e
No known key found for this signature in database
GPG Key ID: CA5A94C15809879F
2 changed files with 21 additions and 4 deletions

View File

@ -29,6 +29,12 @@ class Listener extends EventEmitter {
this.__connections = new Map()
}
/**
* Closes all open servers
* @param {object} options
* @param {number} options.timeout how long before closure is forced, defaults to 2000 ms
* @returns {Promise}
*/
close (options = {}) {
if ([...this._servers].filter(server => server.listening).length === 0) {
return
@ -65,6 +71,11 @@ class Listener extends EventEmitter {
})
}
/**
* Creates servers listening on the given `addrs`
* @async
* @param {Array<Multiaddr>} addrs
*/
async listen (addrs) {
addrs = Array.isArray(addrs) ? addrs : [addrs]
@ -115,6 +126,10 @@ class Listener extends EventEmitter {
})
}
/**
* Return the addresses we are listening on
* @returns {Array<Multiaddr>}
*/
getAddrs () {
const multiaddrs = []
this._servers.forEach(server => {

View File

@ -183,7 +183,7 @@ describe('dial', () => {
handled = resolve
})
const ma = multiaddr('/ip6/::/tcp/9067')
const ma = multiaddr('/ip6/::/tcp/0')
const listener = tcp.createListener(async (conn) => {
await pipe(
@ -194,7 +194,8 @@ describe('dial', () => {
})
await listener.listen(ma)
await pipe(await tcp.dial(ma))
const addrs = listener.getAddrs()
await pipe(await tcp.dial(addrs[0]))
await handledPromise
await listener.close()
@ -210,7 +211,7 @@ describe('dial', () => {
handled = resolve
})
const ma = multiaddr('/ip6/::/tcp/9068')
const ma = multiaddr('/ip6/::/tcp/0')
const listener = tcp.createListener(async (conn) => {
// pull(conn, pull.onEnd(destroyed))
@ -219,7 +220,8 @@ describe('dial', () => {
})
await listener.listen(ma)
await pipe([], await tcp.dial(ma))
const addrs = listener.getAddrs()
await pipe([], await tcp.dial(addrs[0]))
await handledPromise
await listener.close()