test: dont use mdns in browser tests (#602)

* test(fix): dont use mdns in browser tests

* refactor: use async await consistently for _setupPeerDiscovery
This commit is contained in:
Jacob Heun 2020-04-06 13:22:12 +02:00 committed by GitHub
parent bd7fd0f755
commit 0fd5188176
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 6 deletions

View File

@ -458,10 +458,10 @@ class Libp2p extends EventEmitter {
/**
* Initializes and starts peer discovery services
*
* @async
* @private
* @returns {Promise<void>}
*/
_setupPeerDiscovery () {
async _setupPeerDiscovery () {
const setupService = (DiscoveryService) => {
let config = {
enabled: true // on by default
@ -500,7 +500,7 @@ class Libp2p extends EventEmitter {
}
}
return Promise.all(Array.from(this._discovery.values(), d => d.start()))
await Promise.all(Array.from(this._discovery.values(), d => d.start()))
}
}

View File

@ -9,12 +9,12 @@ const sinon = require('sinon')
const defer = require('p-defer')
const mergeOptions = require('merge-options')
const MulticastDNS = require('libp2p-mdns')
const WebRTCStar = require('libp2p-webrtc-star')
const Libp2p = require('../../src')
const baseOptions = require('../utils/base-options.browser')
const { createPeerInfo } = require('../utils/creators/peer')
const { EventEmitter } = require('events')
describe('peer discovery', () => {
describe('basic functions', () => {
@ -51,17 +51,22 @@ describe('peer discovery', () => {
})
it('should ignore self on discovery', async () => {
const mockDiscovery = new EventEmitter()
mockDiscovery.tag = 'mock'
mockDiscovery.start = () => {}
mockDiscovery.stop = () => {}
libp2p = new Libp2p(mergeOptions(baseOptions, {
peerInfo,
modules: {
peerDiscovery: [MulticastDNS]
peerDiscovery: [mockDiscovery]
}
}))
await libp2p.start()
const discoverySpy = sinon.spy()
libp2p.on('peer:discovery', discoverySpy)
libp2p._discovery.get('mdns').emit('peer', libp2p.peerInfo)
libp2p._discovery.get('mock').emit('peer', libp2p.peerInfo)
expect(discoverySpy.called).to.eql(false)
})