mirror of
https://github.com/logos-messaging/logos-delivery.git
synced 2026-06-07 06:29:50 +00:00
refactor(wakunode): split peer utils tests into a new file
This commit is contained in:
parent
260615c742
commit
4c228ee47f
@ -8,6 +8,7 @@ import
|
|||||||
./v2/test_waku_filter,
|
./v2/test_waku_filter,
|
||||||
./v2/test_waku_payload,
|
./v2/test_waku_payload,
|
||||||
./v2/test_waku_swap,
|
./v2/test_waku_swap,
|
||||||
|
./v2/test_utils_peers,
|
||||||
./v2/test_utils_pagination,
|
./v2/test_utils_pagination,
|
||||||
./v2/test_message_cache,
|
./v2/test_message_cache,
|
||||||
./v2/test_message_store_queue,
|
./v2/test_message_store_queue,
|
||||||
|
|||||||
126
tests/v2/test_utils_peers.nim
Normal file
126
tests/v2/test_utils_peers.nim
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
{.used.}
|
||||||
|
|
||||||
|
import
|
||||||
|
stew/results,
|
||||||
|
testutils/unittests,
|
||||||
|
libp2p/multiaddress,
|
||||||
|
libp2p/peerid,
|
||||||
|
libp2p/errors
|
||||||
|
import
|
||||||
|
../../waku/v2/utils/peers
|
||||||
|
|
||||||
|
suite "Utils - Peers":
|
||||||
|
|
||||||
|
test "Peer info parses correctly":
|
||||||
|
## Given
|
||||||
|
let address = "/ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
|
||||||
|
## When
|
||||||
|
let remotePeerInfo = parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
## Then
|
||||||
|
check:
|
||||||
|
$(remotePeerInfo.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
$(remotePeerInfo.addrs[0][0].tryGet()) == "/ip4/127.0.0.1"
|
||||||
|
$(remotePeerInfo.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||||
|
|
||||||
|
test "DNS multiaddrs parsing - dns peer":
|
||||||
|
## Given
|
||||||
|
let address = "/dns/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
|
||||||
|
## When
|
||||||
|
let dnsPeer = parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
## Then
|
||||||
|
check:
|
||||||
|
$(dnsPeer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
$(dnsPeer.addrs[0][0].tryGet()) == "/dns/localhost"
|
||||||
|
$(dnsPeer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||||
|
|
||||||
|
test "DNS multiaddrs parsing - dnsaddr peer":
|
||||||
|
## Given
|
||||||
|
let address = "/dnsaddr/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
|
||||||
|
## When
|
||||||
|
let dnsAddrPeer = parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
## Then
|
||||||
|
check:
|
||||||
|
$(dnsAddrPeer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
$(dnsAddrPeer.addrs[0][0].tryGet()) == "/dnsaddr/localhost"
|
||||||
|
$(dnsAddrPeer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||||
|
|
||||||
|
test "DNS multiaddrs parsing - dns4 peer":
|
||||||
|
## Given
|
||||||
|
let address = "/dns4/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
|
||||||
|
## When
|
||||||
|
let dns4Peer = parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
# Then
|
||||||
|
check:
|
||||||
|
$(dns4Peer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
$(dns4Peer.addrs[0][0].tryGet()) == "/dns4/localhost"
|
||||||
|
$(dns4Peer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||||
|
|
||||||
|
test "DNS multiaddrs parsing - dns6 peer":
|
||||||
|
## Given
|
||||||
|
let address = "/dns6/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
|
||||||
|
## When
|
||||||
|
let dns6Peer = parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
## Then
|
||||||
|
check:
|
||||||
|
$(dns6Peer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
$(dns6Peer.addrs[0][0].tryGet()) == "/dns6/localhost"
|
||||||
|
$(dns6Peer.addrs[0][1].tryGet()) == "/tcp/60002"
|
||||||
|
|
||||||
|
test "Multiaddr parsing should fail with invalid address":
|
||||||
|
## Given
|
||||||
|
let address = "/p2p/$UCH GIBBER!SH"
|
||||||
|
|
||||||
|
## Then
|
||||||
|
expect LPError:
|
||||||
|
discard parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
test "Multiaddr parsing should fail with leading whitespace":
|
||||||
|
## Given
|
||||||
|
let address = " /ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
|
||||||
|
## Then
|
||||||
|
expect LPError:
|
||||||
|
discard parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
test "Multiaddr parsing should fail with trailing whitespace":
|
||||||
|
## Given
|
||||||
|
let address = "/ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc "
|
||||||
|
|
||||||
|
## Then
|
||||||
|
expect LPError:
|
||||||
|
discard parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
test "Multiaddress parsing should fail with invalid IP address":
|
||||||
|
## Given
|
||||||
|
let address = "/ip4/127.0.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
|
||||||
|
## Then
|
||||||
|
expect LPError:
|
||||||
|
discard parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
test "Multiaddress parsing should fail with no peer ID":
|
||||||
|
## Given
|
||||||
|
let address = "/ip4/127.0.0.1/tcp/60002"
|
||||||
|
|
||||||
|
# Then
|
||||||
|
expect LPError:
|
||||||
|
discard parseRemotePeerInfo(address)
|
||||||
|
|
||||||
|
test "Multiaddress parsing should fail with unsupported transport":
|
||||||
|
## Given
|
||||||
|
let address = "/ip4/127.0.0.1/udp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
||||||
|
|
||||||
|
## Then
|
||||||
|
expect ValueError:
|
||||||
|
discard parseRemotePeerInfo(address)
|
||||||
|
|
||||||
@ -5,7 +5,6 @@ import
|
|||||||
chronicles, chronos, stew/shims/net as stewNet, stew/byteutils, std/os,
|
chronicles, chronos, stew/shims/net as stewNet, stew/byteutils, std/os,
|
||||||
libp2p/crypto/crypto,
|
libp2p/crypto/crypto,
|
||||||
libp2p/crypto/secp,
|
libp2p/crypto/secp,
|
||||||
libp2p/peerid,
|
|
||||||
libp2p/multiaddress,
|
libp2p/multiaddress,
|
||||||
libp2p/switch,
|
libp2p/switch,
|
||||||
libp2p/protocols/pubsub/rpc/messages,
|
libp2p/protocols/pubsub/rpc/messages,
|
||||||
@ -519,70 +518,6 @@ procSuite "WakuNode":
|
|||||||
await node1.stop()
|
await node1.stop()
|
||||||
await node2.stop()
|
await node2.stop()
|
||||||
|
|
||||||
asyncTest "Peer info parses correctly":
|
|
||||||
## This is such an important utility function for wakunode2
|
|
||||||
## that it deserves its own test :)
|
|
||||||
|
|
||||||
# First test the `happy path` expected case
|
|
||||||
let
|
|
||||||
addrStr = "/ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
|
||||||
remotePeerInfo = parseRemotePeerInfo(addrStr)
|
|
||||||
|
|
||||||
check:
|
|
||||||
$(remotePeerInfo.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
|
||||||
$(remotePeerInfo.addrs[0][0].tryGet()) == "/ip4/127.0.0.1"
|
|
||||||
$(remotePeerInfo.addrs[0][1].tryGet()) == "/tcp/60002"
|
|
||||||
|
|
||||||
# DNS multiaddrs parsing expected cases:
|
|
||||||
let
|
|
||||||
dnsPeer = parseRemotePeerInfo("/dns/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
|
||||||
dnsAddrPeer = parseRemotePeerInfo("/dnsaddr/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
|
||||||
dns4Peer = parseRemotePeerInfo("/dns4/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
|
||||||
dns6Peer = parseRemotePeerInfo("/dns6/localhost/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
|
||||||
|
|
||||||
check:
|
|
||||||
# /dns
|
|
||||||
$(dnsPeer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
|
||||||
$(dnsPeer.addrs[0][0].tryGet()) == "/dns/localhost"
|
|
||||||
$(dnsPeer.addrs[0][1].tryGet()) == "/tcp/60002"
|
|
||||||
# /dnsaddr
|
|
||||||
$(dnsAddrPeer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
|
||||||
$(dnsAddrPeer.addrs[0][0].tryGet()) == "/dnsaddr/localhost"
|
|
||||||
$(dnsAddrPeer.addrs[0][1].tryGet()) == "/tcp/60002"
|
|
||||||
# /dns4
|
|
||||||
$(dns4Peer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
|
||||||
$(dns4Peer.addrs[0][0].tryGet()) == "/dns4/localhost"
|
|
||||||
$(dns4Peer.addrs[0][1].tryGet()) == "/tcp/60002"
|
|
||||||
# /dns6
|
|
||||||
$(dns6Peer.peerId) == "16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc"
|
|
||||||
$(dns6Peer.addrs[0][0].tryGet()) == "/dns6/localhost"
|
|
||||||
$(dns6Peer.addrs[0][1].tryGet()) == "/tcp/60002"
|
|
||||||
|
|
||||||
# Now test some common corner cases
|
|
||||||
expect LPError:
|
|
||||||
# gibberish
|
|
||||||
discard parseRemotePeerInfo("/p2p/$UCH GIBBER!SH")
|
|
||||||
|
|
||||||
expect LPError:
|
|
||||||
# leading whitespace
|
|
||||||
discard parseRemotePeerInfo(" /ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
|
||||||
|
|
||||||
expect LPError:
|
|
||||||
# trailing whitespace
|
|
||||||
discard parseRemotePeerInfo("/ip4/127.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc ")
|
|
||||||
|
|
||||||
expect LPError:
|
|
||||||
# invalid IP address
|
|
||||||
discard parseRemotePeerInfo("/ip4/127.0.0.0.1/tcp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
|
||||||
|
|
||||||
expect LPError:
|
|
||||||
# no PeerID
|
|
||||||
discard parseRemotePeerInfo("/ip4/127.0.0.1/tcp/60002")
|
|
||||||
|
|
||||||
expect ValueError:
|
|
||||||
# unsupported transport
|
|
||||||
discard parseRemotePeerInfo("/ip4/127.0.0.1/udp/60002/p2p/16Uuu2HBmAcHvhLqQKwSSbX6BG5JLWUDRcaLVrehUVqpw7fz1hbYc")
|
|
||||||
|
|
||||||
asyncTest "resolve and connect to dns multiaddrs":
|
asyncTest "resolve and connect to dns multiaddrs":
|
||||||
let resolver = MockResolver.new()
|
let resolver = MockResolver.new()
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user