diff --git a/doc/CONFIGURATION.md b/doc/CONFIGURATION.md index acd5660c..dcd277a2 100644 --- a/doc/CONFIGURATION.md +++ b/doc/CONFIGURATION.md @@ -215,6 +215,7 @@ Besides the `modules` and `config`, libp2p allows other internal options and con - `listen` addresses will be provided to the libp2p underlying transports for listening on them. - `announce` addresses will be used to compute the advertises that the node should advertise to the network. - `noAnnounce` addresses will be used as a filter to compute the advertises that the node should advertise to the network. + - `announceFilter`: filter function used to filter announced addresses programmatically: `(ma: Array) => Array`. Default: bypass all addresses. [`libp2p-utils`](https://github.com/libp2p/js-libp2p-utils) provides useful [multiaddr utilities](https://github.com/libp2p/js-libp2p-utils/blob/master/API.md#multiaddr-isloopbackma) to create your filters. ### Examples diff --git a/package.json b/package.json index 00e0546f..2c9b6a27 100644 --- a/package.json +++ b/package.json @@ -87,12 +87,9 @@ "@nodeutils/defaults-deep": "^1.1.0", "abortable-iterator": "^3.0.0", "aegir": "^27.0.0", - "chai": "^4.2.0", - "chai-as-promised": "^7.1.1", "chai-bytes": "^0.1.2", "chai-string": "^1.5.0", "delay": "^4.3.0", - "dirty-chai": "^2.0.1", "interop-libp2p": "^0.3.0", "ipfs-http-client": "^47.0.1", "it-concat": "^1.0.0", diff --git a/src/index.js b/src/index.js index 065acd84..222577a2 100644 --- a/src/index.js +++ b/src/index.js @@ -367,11 +367,13 @@ class Libp2p extends EventEmitter { * @returns {Array} */ get multiaddrs () { + const announceFilter = this._options.addresses.announceFilter || ((multiaddrs) => multiaddrs) + // Filter noAnnounce multiaddrs const filterMa = this.addressManager.getNoAnnounceAddrs() // Create advertising list - return this.transportManager.getAddrs() + return announceFilter(this.transportManager.getAddrs() .concat(this.addressManager.getAnnounceAddrs()) .filter((ma, index, array) => { // Filter out if repeated @@ -385,7 +387,7 @@ class Libp2p extends EventEmitter { } return true - }) + })) } /** diff --git a/test/addresses/address-manager.spec.js b/test/addresses/address-manager.spec.js index 3e0d0efd..c1d98e83 100644 --- a/test/addresses/address-manager.spec.js +++ b/test/addresses/address-manager.spec.js @@ -1,11 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai - +const { expect } = require('aegir/utils/chai') const multiaddr = require('multiaddr') const AddressManager = require('../../src/address-manager') diff --git a/test/addresses/addresses.node.js b/test/addresses/addresses.node.js index 8993fe1c..3797f2d5 100644 --- a/test/addresses/addresses.node.js +++ b/test/addresses/addresses.node.js @@ -1,17 +1,16 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') +const isLoopback = require('libp2p-utils/src/multiaddr/is-loopback') + const { AddressesOptions } = require('./utils') const peerUtils = require('../utils/creators/peer') const listenAddresses = ['/ip4/127.0.0.1/tcp/0', '/ip4/127.0.0.1/tcp/8000/ws'] -const announceAddreses = ['/dns4/peer.io'] +const announceAddreses = ['/dns4/peer.io/tcp/433/p2p/12D3KooWNvSZnPi3RrhrTwEY4LuuBeB6K6facKUCJcyWG1aoDd2p'] describe('libp2p.multiaddrs', () => { let libp2p @@ -123,4 +122,30 @@ describe('libp2p.multiaddrs', () => { expect(advertiseMultiaddrs).to.not.include(m) }) }) + + it('can filter out loopback addresses to announced by the announce filter', async () => { + [libp2p] = await peerUtils.createPeer({ + started: false, + config: { + ...AddressesOptions, + addresses: { + listen: listenAddresses, + announce: announceAddreses, + announceFilter: (multiaddrs) => multiaddrs.filter(m => !isLoopback(m)) + } + } + }) + + const listenAddrs = libp2p.addressManager.listen + expect(listenAddrs.size).to.equal(listenAddresses.length) + expect(listenAddrs.has(listenAddresses[0])).to.equal(true) + expect(listenAddrs.has(listenAddresses[1])).to.equal(true) + + await libp2p.start() + + const multiaddrs = libp2p.multiaddrs + expect(multiaddrs.length).to.equal(announceAddreses.length) + expect(multiaddrs.includes(listenAddresses[0])).to.equal(false) + expect(multiaddrs.includes(listenAddresses[1])).to.equal(false) + }) }) diff --git a/test/connection-manager/index.node.js b/test/connection-manager/index.node.js index c1cc4ebc..b2f3ba5d 100644 --- a/test/connection-manager/index.node.js +++ b/test/connection-manager/index.node.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const delay = require('delay') diff --git a/test/connection-manager/index.spec.js b/test/connection-manager/index.spec.js index caf6becb..77e0934c 100644 --- a/test/connection-manager/index.spec.js +++ b/test/connection-manager/index.spec.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const peerUtils = require('../utils/creators/peer') diff --git a/test/content-routing/content-routing.node.js b/test/content-routing/content-routing.node.js index 17850e99..1bef142d 100644 --- a/test/content-routing/content-routing.node.js +++ b/test/content-routing/content-routing.node.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const nock = require('nock') const sinon = require('sinon') diff --git a/test/content-routing/dht/configuration.node.js b/test/content-routing/dht/configuration.node.js index e4a0bda9..9213d6e2 100644 --- a/test/content-routing/dht/configuration.node.js +++ b/test/content-routing/dht/configuration.node.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai - +const { expect } = require('aegir/utils/chai') const mergeOptions = require('merge-options') const { create } = require('../../../src') diff --git a/test/core/encryption.spec.js b/test/core/encryption.spec.js index 11738285..bac84be8 100644 --- a/test/core/encryption.spec.js +++ b/test/core/encryption.spec.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const Transport = require('libp2p-websockets') const { NOISE: Crypto } = require('libp2p-noise') diff --git a/test/core/listening.node.js b/test/core/listening.node.js index 46976733..fe202b1a 100644 --- a/test/core/listening.node.js +++ b/test/core/listening.node.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const Transport = require('libp2p-tcp') const { NOISE: Crypto } = require('libp2p-noise') diff --git a/test/core/ping.node.js b/test/core/ping.node.js index 2438758f..510e5e3c 100644 --- a/test/core/ping.node.js +++ b/test/core/ping.node.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const pTimes = require('p-times') const pipe = require('it-pipe') diff --git a/test/dialing/dial-request.spec.js b/test/dialing/dial-request.spec.js index f88db772..4ca25e9d 100644 --- a/test/dialing/dial-request.spec.js +++ b/test/dialing/dial-request.spec.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const { AbortError } = require('libp2p-interfaces/src/transport/errors') diff --git a/test/dialing/direct.spec.js b/test/dialing/direct.spec.js index 8ef78a91..f80e5874 100644 --- a/test/dialing/direct.spec.js +++ b/test/dialing/direct.spec.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const pDefer = require('p-defer') const pWaitFor = require('p-wait-for') diff --git a/test/dialing/utils.js b/test/dialing/utils.js new file mode 100644 index 00000000..e69de29b diff --git a/test/identify/index.spec.js b/test/identify/index.spec.js index 6cf95798..41a37012 100644 --- a/test/identify/index.spec.js +++ b/test/identify/index.spec.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const { EventEmitter } = require('events') diff --git a/test/insecure/plaintext.spec.js b/test/insecure/plaintext.spec.js index b0c0e9cb..41f10c5a 100644 --- a/test/insecure/plaintext.spec.js +++ b/test/insecure/plaintext.spec.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const PeerId = require('peer-id') diff --git a/test/keychain/cms-interop.spec.js b/test/keychain/cms-interop.spec.js index 1c39eda5..546d163c 100644 --- a/test/keychain/cms-interop.spec.js +++ b/test/keychain/cms-interop.spec.js @@ -2,10 +2,7 @@ /* eslint-env mocha */ 'use strict' -const chai = require('chai') -const dirtyChai = require('dirty-chai') -const expect = chai.expect -chai.use(dirtyChai) +const { chai, expect } = require('aegir/utils/chai') chai.use(require('chai-string')) const uint8ArrayFromString = require('uint8arrays/from-string') const uint8ArrayToString = require('uint8arrays/to-string') diff --git a/test/keychain/keychain.spec.js b/test/keychain/keychain.spec.js index 8124c72c..1b74c91e 100644 --- a/test/keychain/keychain.spec.js +++ b/test/keychain/keychain.spec.js @@ -73,9 +73,9 @@ describe('keychain', () => { it('can find a key without a password', async () => { const keychain = new Keychain(datastore2) const keychainWithPassword = new Keychain(datastore2, { passPhrase: `hello-${Date.now()}-${Date.now()}` }) - const id = `key-${Math.random()}` + const name = `key-${Math.random()}` - await keychainWithPassword.createKey(id, 'ed25519') + const { id } = await keychainWithPassword.createKey(name, 'ed25519') await expect(keychain.findKeyById(id)).to.eventually.be.ok() }) diff --git a/test/keychain/peerid.spec.js b/test/keychain/peerid.spec.js index 430d47a7..fd393d6a 100644 --- a/test/keychain/peerid.spec.js +++ b/test/keychain/peerid.spec.js @@ -1,10 +1,7 @@ /* eslint-env mocha */ 'use strict' -const chai = require('chai') -const dirtyChai = require('dirty-chai') -const expect = chai.expect -chai.use(dirtyChai) +const { expect } = require('aegir/utils/chai') const PeerId = require('peer-id') const multihash = require('multihashes') const crypto = require('libp2p-crypto') diff --git a/test/metrics/index.node.js b/test/metrics/index.node.js index 4387bf16..cdd43e7e 100644 --- a/test/metrics/index.node.js +++ b/test/metrics/index.node.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const { randomBytes } = require('libp2p-crypto') diff --git a/test/metrics/index.spec.js b/test/metrics/index.spec.js index da0c10d5..5f401e8a 100644 --- a/test/metrics/index.spec.js +++ b/test/metrics/index.spec.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const { EventEmitter } = require('events') diff --git a/test/peer-discovery/index.node.js b/test/peer-discovery/index.node.js index bbea8a0a..63976cb8 100644 --- a/test/peer-discovery/index.node.js +++ b/test/peer-discovery/index.node.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const defer = require('p-defer') const mergeOptions = require('merge-options') diff --git a/test/peer-discovery/index.spec.js b/test/peer-discovery/index.spec.js index fcada30c..2fd037a0 100644 --- a/test/peer-discovery/index.spec.js +++ b/test/peer-discovery/index.spec.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const defer = require('p-defer') diff --git a/test/peer-routing/peer-routing.node.js b/test/peer-routing/peer-routing.node.js index 105ef614..cdce080c 100644 --- a/test/peer-routing/peer-routing.node.js +++ b/test/peer-routing/peer-routing.node.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const nock = require('nock') const sinon = require('sinon') diff --git a/test/peer-store/address-book.spec.js b/test/peer-store/address-book.spec.js index a5578e91..f6b8f280 100644 --- a/test/peer-store/address-book.spec.js +++ b/test/peer-store/address-book.spec.js @@ -2,10 +2,7 @@ /* eslint-env mocha */ /* eslint max-nested-callbacks: ["error", 6] */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai - +const { expect } = require('aegir/utils/chai') const { Buffer } = require('buffer') const multiaddr = require('multiaddr') const arrayEquals = require('libp2p-utils/src/array-equals') diff --git a/test/peer-store/key-book.spec.js b/test/peer-store/key-book.spec.js index 4f51acb0..af41a334 100644 --- a/test/peer-store/key-book.spec.js +++ b/test/peer-store/key-book.spec.js @@ -1,10 +1,8 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) +const { chai, expect } = require('aegir/utils/chai') chai.use(require('chai-bytes')) -const { expect } = chai const sinon = require('sinon') const PeerStore = require('../../src/peer-store') diff --git a/test/peer-store/metadata-book.spec.js b/test/peer-store/metadata-book.spec.js index 8d3e815b..155b2205 100644 --- a/test/peer-store/metadata-book.spec.js +++ b/test/peer-store/metadata-book.spec.js @@ -1,10 +1,8 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) +const { chai, expect } = require('aegir/utils/chai') chai.use(require('chai-bytes')) -const { expect } = chai const uint8ArrayFromString = require('uint8arrays/from-string') const pDefer = require('p-defer') diff --git a/test/peer-store/peer-store.node.js b/test/peer-store/peer-store.node.js index f89c166b..8c322a2c 100644 --- a/test/peer-store/peer-store.node.js +++ b/test/peer-store/peer-store.node.js @@ -1,10 +1,8 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) +const { chai, expect } = require('aegir/utils/chai') chai.use(require('chai-bytes')) -const { expect } = chai const sinon = require('sinon') const baseOptions = require('../utils/base-options') diff --git a/test/peer-store/peer-store.spec.js b/test/peer-store/peer-store.spec.js index c9d18800..39c2c718 100644 --- a/test/peer-store/peer-store.spec.js +++ b/test/peer-store/peer-store.spec.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const PeerStore = require('../../src/peer-store') const multiaddr = require('multiaddr') diff --git a/test/peer-store/persisted-peer-store.spec.js b/test/peer-store/persisted-peer-store.spec.js index 3c58e21d..e1d70476 100644 --- a/test/peer-store/persisted-peer-store.spec.js +++ b/test/peer-store/persisted-peer-store.spec.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const Envelope = require('../../src/record/envelope') diff --git a/test/peer-store/proto-book.spec.js b/test/peer-store/proto-book.spec.js index 06dfcdf7..db05955f 100644 --- a/test/peer-store/proto-book.spec.js +++ b/test/peer-store/proto-book.spec.js @@ -1,11 +1,9 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai - +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') + const pDefer = require('p-defer') const pWaitFor = require('p-wait-for') diff --git a/test/pnet/index.spec.js b/test/pnet/index.spec.js index 9fa2b9f2..98327146 100644 --- a/test/pnet/index.spec.js +++ b/test/pnet/index.spec.js @@ -1,10 +1,7 @@ /* eslint-env mocha */ 'use strict' -const chai = require('chai') -const dirtyChai = require('dirty-chai') -chai.use(dirtyChai) -const expect = chai.expect +const { expect } = require('aegir/utils/chai') const duplexPair = require('it-pair/duplex') const pipe = require('it-pipe') const { collect } = require('streaming-iterables') diff --git a/test/pubsub/configuration.node.js b/test/pubsub/configuration.node.js index ed8cd90c..12b0b584 100644 --- a/test/pubsub/configuration.node.js +++ b/test/pubsub/configuration.node.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai - +const { expect } = require('aegir/utils/chai') const mergeOptions = require('merge-options') const multiaddr = require('multiaddr') diff --git a/test/pubsub/implementations.node.js b/test/pubsub/implementations.node.js index a17d7744..3243d94b 100644 --- a/test/pubsub/implementations.node.js +++ b/test/pubsub/implementations.node.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai - +const { expect } = require('aegir/utils/chai') const pWaitFor = require('p-wait-for') const pDefer = require('p-defer') const mergeOptions = require('merge-options') diff --git a/test/pubsub/operation.node.js b/test/pubsub/operation.node.js index 08e2afbc..2ebe39da 100644 --- a/test/pubsub/operation.node.js +++ b/test/pubsub/operation.node.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const pWaitFor = require('p-wait-for') diff --git a/test/record/envelope.spec.js b/test/record/envelope.spec.js index 81cbfb12..ca7408f2 100644 --- a/test/record/envelope.spec.js +++ b/test/record/envelope.spec.js @@ -1,12 +1,8 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) +const { chai, expect } = require('aegir/utils/chai') chai.use(require('chai-bytes')) -chai.use(require('chai-as-promised')) -const { expect } = chai - const uint8arrayFromString = require('uint8arrays/from-string') const uint8arrayEquals = require('uint8arrays/equals') const Envelope = require('../../src/record/envelope') diff --git a/test/record/peer-record.spec.js b/test/record/peer-record.spec.js index 638e1458..e8b8ed64 100644 --- a/test/record/peer-record.spec.js +++ b/test/record/peer-record.spec.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const tests = require('libp2p-interfaces/src/record/tests') const multiaddr = require('multiaddr') diff --git a/test/registrar/registrar.spec.js b/test/registrar/registrar.spec.js index 6befd059..8f90b9fc 100644 --- a/test/registrar/registrar.spec.js +++ b/test/registrar/registrar.spec.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const pDefer = require('p-defer') const { EventEmitter } = require('events') diff --git a/test/relay/auto-relay.node.js b/test/relay/auto-relay.node.js index 8d0cdfd2..2411f48a 100644 --- a/test/relay/auto-relay.node.js +++ b/test/relay/auto-relay.node.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai - +const { expect } = require('aegir/utils/chai') const delay = require('delay') const pWaitFor = require('p-wait-for') const sinon = require('sinon') diff --git a/test/relay/relay.node.js b/test/relay/relay.node.js index 67f90a7f..163bd831 100644 --- a/test/relay/relay.node.js +++ b/test/relay/relay.node.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const multiaddr = require('multiaddr') diff --git a/test/transports/transport-manager.node.js b/test/transports/transport-manager.node.js index 2e17f88b..fae5576a 100644 --- a/test/transports/transport-manager.node.js +++ b/test/transports/transport-manager.node.js @@ -1,9 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const AddressManager = require('../../src/address-manager') const TransportManager = require('../../src/transport-manager') diff --git a/test/transports/transport-manager.spec.js b/test/transports/transport-manager.spec.js index 9f302b6c..cbdef79b 100644 --- a/test/transports/transport-manager.spec.js +++ b/test/transports/transport-manager.spec.js @@ -1,10 +1,7 @@ 'use strict' /* eslint-env mocha */ -const chai = require('chai') -chai.use(require('dirty-chai')) -chai.use(require('chai-as-promised')) -const { expect } = chai +const { expect } = require('aegir/utils/chai') const sinon = require('sinon') const multiaddr = require('multiaddr')