diff --git a/tests/test_waku_keepalive.nim b/tests/test_waku_keepalive.nim index c12f20a05..21cba115d 100644 --- a/tests/test_waku_keepalive.nim +++ b/tests/test_waku_keepalive.nim @@ -23,11 +23,8 @@ suite "Waku Keepalive": proc pingHandler(peerId: PeerID) {.async, gcsafe.} = info "Ping received" - - check: - peerId == node1.switch.peerInfo.peerId - - completionFut.complete(true) + let checkPeerIdMatch = peerId == node1.switch.peerInfo.peerId + completionFut.complete(checkPeerIdMatch) await node1.start() (await node1.mountRelay()).isOkOr: @@ -44,6 +41,12 @@ suite "Waku Keepalive": await node1.connectToNodes(@[node2.switch.peerInfo.toRemotePeerInfo()]) + ## Wait a while till the connection is established + for _ in 0 ..< 20: + if node1.peerManager.isPeerConnected(node2.switch.peerInfo.peerId): + break + await sleepAsync(100.millis) + let healthMonitor = NodeHealthMonitor() healthMonitor.setNodeToHealthMonitor(node1) healthMonitor.startKeepalive(2.seconds).isOkOr: diff --git a/waku/node/peer_manager/peer_manager.nim b/waku/node/peer_manager/peer_manager.nim index bdb68905e..30dc09b4a 100644 --- a/waku/node/peer_manager/peer_manager.nim +++ b/waku/node/peer_manager/peer_manager.nim @@ -500,6 +500,10 @@ proc connectedPeers*( return (inPeers, outPeers) +proc isPeerConnected*(pm: PeerManager, peerId: PeerId): bool + let (inPeers, outPeers) = pm.connectedPeers() + return inPeers.contains(peerId) or outPeers.contains(peerId) + proc disconnectAllPeers*(pm: PeerManager) {.async.} = let (inPeerIds, outPeerIds) = pm.connectedPeers() let connectedPeers = concat(inPeerIds, outPeerIds)