diff --git a/crates/net/network/src/peers/manager.rs b/crates/net/network/src/peers/manager.rs index 962233d8a8..4ae7d793d9 100644 --- a/crates/net/network/src/peers/manager.rs +++ b/crates/net/network/src/peers/manager.rs @@ -1153,6 +1153,43 @@ mod test { .await; } + #[tokio::test] + async fn test_unban() { + let peer = PeerId::random(); + let socket_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 1, 2)), 8008); + let mut peers = PeersManager::default(); + peers.ban_peer(peer); + peers.add_peer(peer, socket_addr, None); + + match event!(peers) { + PeerAction::BanPeer { peer_id } => { + assert_eq!(peer_id, peer); + } + _ => unreachable!(), + } + + poll_fn(|cx| { + assert!(peers.poll(cx).is_pending()); + Poll::Ready(()) + }) + .await; + + peers.unban_peer(peer); + + match event!(peers) { + PeerAction::UnBanPeer { peer_id } => { + assert_eq!(peer_id, peer); + } + _ => unreachable!(), + } + + poll_fn(|cx| { + assert!(peers.poll(cx).is_pending()); + Poll::Ready(()) + }) + .await; + } + #[tokio::test] async fn test_backoff_on_busy() { let peer = PeerId::random();