Merge branch 'master' into chore/separate-rln-from-relay-phase1

This commit is contained in:
stubbsta 2026-06-26 08:49:05 +02:00
commit db1b10c556
No known key found for this signature in database
2 changed files with 41 additions and 1 deletions

View File

@ -125,7 +125,7 @@ jobs:
matrix:
os: [ubuntu-22.04, macos-15]
runs-on: ${{ matrix.os }}
timeout-minutes: 45
timeout-minutes: 60
name: test-${{ matrix.os }}
steps:

View File

@ -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: