mirror of
https://github.com/fluencelabs/js-libp2p
synced 2025-07-31 16:32:01 +00:00
feat: address manager
This commit is contained in:
93
test/addresses/address-manager.spec.js
Normal file
93
test/addresses/address-manager.spec.js
Normal file
@@ -0,0 +1,93 @@
|
||||
'use strict'
|
||||
/* eslint-env mocha */
|
||||
|
||||
const chai = require('chai')
|
||||
chai.use(require('dirty-chai'))
|
||||
chai.use(require('chai-as-promised'))
|
||||
const { expect } = chai
|
||||
|
||||
const multiaddr = require('multiaddr')
|
||||
|
||||
const AddressManager = require('../../src/address-manager')
|
||||
const peerUtils = require('../utils/creators/peer')
|
||||
|
||||
const listenAddresses = ['/ip4/127.0.0.1/tcp/15006/ws', '/ip4/127.0.0.1/tcp/15008/ws']
|
||||
const announceAddreses = ['/dns4/peer.io']
|
||||
|
||||
describe('Address Manager', () => {
|
||||
it('should not need any addresses', () => {
|
||||
const am = new AddressManager()
|
||||
|
||||
expect(am.listen.size).to.equal(0)
|
||||
expect(am.announce.size).to.equal(0)
|
||||
expect(am.noAnnounce.size).to.equal(0)
|
||||
})
|
||||
|
||||
it('should return listen multiaddrs on get', () => {
|
||||
const am = new AddressManager({
|
||||
listen: listenAddresses
|
||||
})
|
||||
|
||||
expect(am.listen.size).to.equal(listenAddresses.length)
|
||||
expect(am.announce.size).to.equal(0)
|
||||
expect(am.noAnnounce.size).to.equal(0)
|
||||
|
||||
const listenMultiaddrs = am.getListenMultiaddrs()
|
||||
expect(listenMultiaddrs.length).to.equal(2)
|
||||
expect(listenMultiaddrs[0].equals(multiaddr(listenAddresses[0]))).to.equal(true)
|
||||
expect(listenMultiaddrs[1].equals(multiaddr(listenAddresses[1]))).to.equal(true)
|
||||
})
|
||||
|
||||
it('should return announce multiaddrs on get', () => {
|
||||
const am = new AddressManager({
|
||||
listen: listenAddresses,
|
||||
announce: announceAddreses
|
||||
})
|
||||
|
||||
expect(am.listen.size).to.equal(listenAddresses.length)
|
||||
expect(am.announce.size).to.equal(announceAddreses.length)
|
||||
expect(am.noAnnounce.size).to.equal(0)
|
||||
|
||||
const announceMultiaddrs = am.getAnnounceMultiaddrs()
|
||||
expect(announceMultiaddrs.length).to.equal(1)
|
||||
expect(announceMultiaddrs[0].equals(multiaddr(announceAddreses[0]))).to.equal(true)
|
||||
})
|
||||
|
||||
it('should return noAnnounce multiaddrs on get', () => {
|
||||
const am = new AddressManager({
|
||||
listen: listenAddresses,
|
||||
noAnnounce: listenAddresses
|
||||
})
|
||||
|
||||
expect(am.listen.size).to.equal(listenAddresses.length)
|
||||
expect(am.announce.size).to.equal(0)
|
||||
expect(am.noAnnounce.size).to.equal(listenAddresses.length)
|
||||
|
||||
const noAnnounceMultiaddrs = am.getNoAnnounceMultiaddrs()
|
||||
expect(noAnnounceMultiaddrs.length).to.equal(2)
|
||||
expect(noAnnounceMultiaddrs[0].equals(multiaddr(listenAddresses[0]))).to.equal(true)
|
||||
expect(noAnnounceMultiaddrs[1].equals(multiaddr(listenAddresses[1]))).to.equal(true)
|
||||
})
|
||||
})
|
||||
|
||||
describe('libp2p.addressManager', () => {
|
||||
let libp2p
|
||||
afterEach(() => libp2p && libp2p.stop())
|
||||
|
||||
it('should populate the AddressManager from the config', async () => {
|
||||
[libp2p] = await peerUtils.createPeer({
|
||||
started: false,
|
||||
config: {
|
||||
addresses: {
|
||||
listen: listenAddresses,
|
||||
announce: announceAddreses,
|
||||
noAnnounce: listenAddresses
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
expect(libp2p.addressManager.listen.size).to.equal(listenAddresses.length)
|
||||
expect(libp2p.addressManager.announce.size).to.equal(announceAddreses.length)
|
||||
expect(libp2p.addressManager.noAnnounce.size).to.equal(listenAddresses.length)
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user