mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-06-26 11:29:28 +00:00
test: add S16 lightpush dynamic-recovery unittest (#3995)
This commit is contained in:
parent
fc15430e52
commit
3eebc7288b
@ -387,6 +387,46 @@ suite "Waku API - Send":
|
||||
(await node.stop()).isOkOr:
|
||||
raiseAssert "Failed to stop node: " & error
|
||||
|
||||
asyncTest "S16 - isolated sender recovers when lightpush peer appears later":
|
||||
## Edge sender starts with no peer; a lightpush peer appears mid-send and a
|
||||
## later retry must deliver the queued message.
|
||||
var node: LogosDelivery
|
||||
lockNewGlobalBrokerContext:
|
||||
node = (await LogosDelivery.new(createApiNodeConf(cli_args.WakuMode.Edge))).valueOr:
|
||||
raiseAssert error
|
||||
(await node.start()).isOkOr:
|
||||
raiseAssert "Failed to start Waku node: " & error
|
||||
# No connectToNodes: the sender has no reachable peer at T0.
|
||||
|
||||
check node.waku.node.wakuRelay.isNil()
|
||||
|
||||
let eventManager = newSendEventListenerManager(node.waku.brokerCtx)
|
||||
defer:
|
||||
await eventManager.teardown()
|
||||
|
||||
let envelope = MessageEnvelope.init(
|
||||
ContentTopic("/waku/2/default-content/proto"), "test payload"
|
||||
)
|
||||
|
||||
# send() with no peer must still succeed; the message is queued and retried.
|
||||
let requestId = (await node.messagingClient.send(envelope)).valueOr:
|
||||
raiseAssert error
|
||||
|
||||
# Nothing should propagate while isolated (retry interval is 1s).
|
||||
await sleepAsync(5.seconds)
|
||||
check eventManager.propagatedCount == 0
|
||||
|
||||
# The lightpush peer appears; a later retry must now deliver.
|
||||
await node.waku.node.connectToNodes(@[lightpushNodePeerInfo])
|
||||
|
||||
const eventTimeout = 10.seconds
|
||||
discard await eventManager.waitForEvents(eventTimeout)
|
||||
|
||||
eventManager.validate({SendEventOutcome.Propagated}, requestId)
|
||||
|
||||
(await node.stop()).isOkOr:
|
||||
raiseAssert "Failed to stop node: " & error
|
||||
|
||||
asyncTest "Send fully validates fallback to lightpush":
|
||||
var node: LogosDelivery
|
||||
lockNewGlobalBrokerContext:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user