From 3bbb9c8ab2003a64d33f98e26fcadd1c1dab4a27 Mon Sep 17 00:00:00 2001 From: Gabriel mermelstein Date: Fri, 30 May 2025 12:44:20 +0200 Subject: [PATCH] making sure connections stabilize before sending messages --- waku/store_test.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/waku/store_test.go b/waku/store_test.go index 5adeac6..2609c8b 100644 --- a/waku/store_test.go +++ b/waku/store_test.go @@ -5,6 +5,7 @@ import ( "testing" "time" + "github.com/cenkalti/backoff/v3" "github.com/stretchr/testify/require" "github.com/waku-org/go-waku/waku/v2/protocol/pb" @@ -1178,6 +1179,31 @@ func TestStoredDuplicateMessage(t *testing.T) { err = node2.ConnectPeer(node1) require.NoError(t, err, "Failed to connect Node2 to Node1") + Debug("Waiting for peer connections to stabilize") + options := func(b *backoff.ExponentialBackOff) { + b.MaxElapsedTime = 10 * time.Second + } + + require.NoError(t, RetryWithBackOff(func() error { + numPeersNode1, err := node1.GetNumConnectedRelayPeers(DefaultPubsubTopic) + if err != nil { + return err + } + if numPeersNode1 == 0 { + return fmt.Errorf("node1 has 0 relay peers, expected at least 1") + } + + numPeersNode2, err := node2.GetNumConnectedRelayPeers(DefaultPubsubTopic) + if err != nil { + return err + } + if numPeersNode2 == 0 { + return fmt.Errorf("node2 has 0 relay peers, expected at least 1") + } + + return nil + }, options), "Peers did not stabilize in time") + queryTimestamp := proto.Int64(time.Now().UnixNano()) var msg = node1.CreateMessage() Debug("Node1 is publishing two identical messages")