From d281a60dac973eeb0c842ffd70cd8bad3ae1156a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marin=20Petruni=C4=87?= Date: Mon, 5 Sep 2022 16:17:35 +0200 Subject: [PATCH] fix: discovery mechanism examples not working (#1365) Co-authored-by: achingbrain - fixed tests that were passing even though the example isn't working - added timeouts to avoid infinite wait Fixes #1229 --- examples/discovery-mechanisms/3.js | 4 ++-- examples/discovery-mechanisms/test-2.js | 2 +- examples/discovery-mechanisms/test-3.js | 15 ++++++++++----- examples/package.json | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/examples/discovery-mechanisms/3.js b/examples/discovery-mechanisms/3.js index c12d5f73..1b3d18b9 100644 --- a/examples/discovery-mechanisms/3.js +++ b/examples/discovery-mechanisms/3.js @@ -67,7 +67,7 @@ const createNode = async (bootstrappers) => { const peer = evt.detail console.log(`Peer ${node1.peerId.toString()} discovered: ${peer.id.toString()}`) }) - node2.addEventListener('peer:discovery',(evt) => { + node2.addEventListener('peer:discovery', (evt) => { const peer = evt.detail console.log(`Peer ${node2.peerId.toString()} discovered: ${peer.id.toString()}`) }) @@ -77,4 +77,4 @@ const createNode = async (bootstrappers) => { node1.start(), node2.start() ]) -})(); +})() diff --git a/examples/discovery-mechanisms/test-2.js b/examples/discovery-mechanisms/test-2.js index 9cef3bfd..fefb7e43 100644 --- a/examples/discovery-mechanisms/test-2.js +++ b/examples/discovery-mechanisms/test-2.js @@ -27,7 +27,7 @@ export async function test () { }) }) - await pWaitFor(() => discoveredNodes > 1) + await pWaitFor(() => discoveredNodes > 1, 600000) proc.kill() } diff --git a/examples/discovery-mechanisms/test-3.js b/examples/discovery-mechanisms/test-3.js index 24a03311..650b4db0 100644 --- a/examples/discovery-mechanisms/test-3.js +++ b/examples/discovery-mechanisms/test-3.js @@ -7,7 +7,7 @@ import { fileURLToPath } from 'url' const __dirname = path.dirname(fileURLToPath(import.meta.url)) export async function test () { - let discoveredNodes = 0 + const discoveredPeers = [] process.stdout.write('3.js\n') @@ -19,15 +19,20 @@ export async function test () { proc.all.on('data', async (data) => { process.stdout.write(data) const str = uint8ArrayToString(data) - + const discoveredPeersRegex = /Peer\s+(?[^\s]+)\s+discovered:\s+(?[^\s]+)/ str.split('\n').forEach(line => { - if (line.includes('discovered:')) { - discoveredNodes++ + const peers = line.match(discoveredPeersRegex) + if (peers != null) { + // sort so we don't count reversed pair twice + const match = [peers.groups.Peer1, peers.groups.Peer2].sort().join(',') + if (!discoveredPeers.includes(match)) { + discoveredPeers.push(match) + } } }) }) - await pWaitFor(() => discoveredNodes > 3) + await pWaitFor(() => discoveredPeers.length > 2, 600000) proc.kill() } diff --git a/examples/package.json b/examples/package.json index 6e86102b..c3baa68c 100644 --- a/examples/package.json +++ b/examples/package.json @@ -9,7 +9,7 @@ }, "license": "MIT", "dependencies": { - "@libp2p/pubsub-peer-discovery": "^6.0.1", + "@libp2p/pubsub-peer-discovery": "^6.0.2", "@libp2p/floodsub": "^3.0.3", "@nodeutils/defaults-deep": "^1.1.0", "execa": "^6.1.0",