mirror of
https://github.com/logos-storage/logos-storage-nim.git
synced 2026-07-16 14:19:28 +00:00
Add discovery tests
This commit is contained in:
parent
bffa085dae
commit
84761db205
50
tests/storage/testdiscovery.nim
Normal file
50
tests/storage/testdiscovery.nim
Normal file
@ -0,0 +1,50 @@
|
||||
import std/[net, options, sequtils]
|
||||
import pkg/libp2p/[multiaddress, routing_record]
|
||||
|
||||
import ../asynctest
|
||||
import ./helpers
|
||||
import ../../storage/discovery
|
||||
import ../../storage/rng
|
||||
|
||||
suite "Discovery - SPR record logic":
|
||||
var key: PrivateKey
|
||||
var disc: Discovery
|
||||
|
||||
let
|
||||
directAddr = MultiAddress.init("/ip4/1.2.3.4/tcp/4001").expect("valid")
|
||||
relayAddr = MultiAddress
|
||||
.init(
|
||||
"/ip4/5.6.7.8/tcp/4002/p2p/16Uiu2HAmQu456Ae52JqPuqog6wCex47LLvNY8oHMBC4GRRtaStHs/p2p-circuit"
|
||||
)
|
||||
.expect("valid")
|
||||
udpPort = Port(8090)
|
||||
|
||||
setup:
|
||||
key = PrivateKey.random(Rng.instance[]).get()
|
||||
disc = Discovery.new(key, announceAddrs = @[])
|
||||
|
||||
test "updateRecordsAndSpr sets the SPR with both TCP and UDP addresses":
|
||||
disc.updateRecordsAndSpr(@[directAddr], udpPort)
|
||||
|
||||
let spr = disc.getSpr()
|
||||
check spr.isSome
|
||||
let addrs = spr.get.data.addresses.mapIt($it.address)
|
||||
check addrs.anyIt(it.contains("/tcp/"))
|
||||
check addrs.anyIt(it.contains("/udp/"))
|
||||
|
||||
test "updateAnnounceRecord does not update the SPR":
|
||||
disc.updateRecordsAndSpr(@[directAddr], udpPort)
|
||||
let sprBefore = disc.getSpr()
|
||||
|
||||
disc.updateAnnounceRecord(@[relayAddr])
|
||||
|
||||
check disc.getSpr() == sprBefore
|
||||
|
||||
test "updateDhtRecord deprecated does not update the SPR":
|
||||
disc.updateRecordsAndSpr(@[directAddr], udpPort)
|
||||
let sprBefore = disc.getSpr()
|
||||
|
||||
let otherUdpAddr = MultiAddress.init("/ip4/9.9.9.9/udp/9999").expect("valid")
|
||||
disc.updateDhtRecord(@[otherUdpAddr])
|
||||
|
||||
check disc.getSpr() == sprBefore
|
||||
Loading…
x
Reference in New Issue
Block a user