mirror of
https://github.com/logos-messaging/logos-messaging-go-bindings.git
synced 2026-08-04 01:13:14 +00:00
Fix wrappers for relay
This commit is contained in:
parent
a6f653aac4
commit
7f579180ce
@ -9,6 +9,7 @@ import (
|
||||
"github.com/waku-org/go-waku/waku/v2/protocol/pb"
|
||||
utilities "github.com/waku-org/waku-go-bindings/testlibs/utilities"
|
||||
"github.com/waku-org/waku-go-bindings/waku"
|
||||
"github.com/waku-org/waku-go-bindings/waku/common"
|
||||
"go.uber.org/zap"
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
@ -379,3 +380,33 @@ func (wrapper *WakuNodeWrapper) Wrappers_CreateMessage() *pb.WakuMessage {
|
||||
utilities.Debug("Successfully created a valid WakuMessage")
|
||||
return message
|
||||
}
|
||||
|
||||
func (wrapper *WakuNodeWrapper) Wrappers_VerifyMessageReceived(expectedMessage *pb.WakuMessage, expectedHash common.MessageHash) error {
|
||||
logger, _ := zap.NewDevelopment()
|
||||
logger.Debug("Verifying if the message was received")
|
||||
|
||||
select {
|
||||
case envelope := <-wrapper.MsgChan:
|
||||
if envelope == nil {
|
||||
logger.Debug("Received envelope is nil")
|
||||
return errors.New("received envelope is nil")
|
||||
}
|
||||
if string(expectedMessage.Payload) != string(envelope.Message().Payload) {
|
||||
logger.Debug("Payload does not match")
|
||||
return errors.New("payload does not match")
|
||||
}
|
||||
if expectedMessage.ContentTopic != envelope.Message().ContentTopic {
|
||||
logger.Debug("Content topic does not match")
|
||||
return errors.New("content topic does not match")
|
||||
}
|
||||
if expectedHash != envelope.Hash() {
|
||||
logger.Debug("Message hash does not match")
|
||||
return errors.New("message hash does not match")
|
||||
}
|
||||
logger.Debug("Message received and verified successfully")
|
||||
return nil
|
||||
case <-time.After(5 * time.Second):
|
||||
logger.Debug("Timeout: message not received within 5 seconds")
|
||||
return errors.New("timeout: message not received within 5 seconds")
|
||||
}
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ func (wrapper *WakuNodeWrapper) Wrappers_RelaySubscribe(pubsubTopic string) erro
|
||||
// Ensure the subscription happened by checking the number of connected relay peers
|
||||
numRelayPeers, err := wrapper.Wrappers_GetNumConnectedRelayPeers(pubsubTopic)
|
||||
if err != nil || numRelayPeers == 0 {
|
||||
utilities.Error("Subscription verification failed: no connected relay peers found", zap.Error(err))
|
||||
//utilities.Error("Subscription verification failed: no connected relay peers found", zap.Error(err))
|
||||
return errors.New("subscription verification failed: no connected relay peers")
|
||||
}
|
||||
|
||||
|
||||
@ -6,5 +6,5 @@ import (
|
||||
|
||||
var ConnectPeerTimeout = 10 * time.Second //default timeout for node to connect to another node
|
||||
|
||||
var DefaultPubsubTopic = "/waku/2/rs/3/0"
|
||||
var DefaultPubsubTopic = "/waku/2/rs/16/64"
|
||||
var PubsubTopic1 = "/waku/2/rs/3/1"
|
||||
|
||||
@ -2,6 +2,7 @@ package waku_go_tests
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
testlibs "github.com/waku-org/waku-go-bindings/testlibs/src"
|
||||
@ -48,3 +49,48 @@ func TestRelaySubscribeToDefaultTopic(t *testing.T) {
|
||||
|
||||
utilities.Debug("Test successfully verified subscription to the default pubsub topic", zap.String("topic", defaultPubsubTopic))
|
||||
}
|
||||
|
||||
func TestRelayMessageTransmission(t *testing.T) {
|
||||
logger, err := zap.NewDevelopment()
|
||||
require.NoError(t, err)
|
||||
|
||||
logger.Debug("Starting TestRelayMessageTransmission")
|
||||
|
||||
// Configuration for sender node
|
||||
senderConfig := *utilities.DefaultWakuConfig
|
||||
senderConfig.Relay = true
|
||||
senderNode, err := testlibs.Wrappers_StartWakuNode(&senderConfig, logger.Named("SenderNode"))
|
||||
require.NoError(t, err)
|
||||
defer senderNode.Wrappers_StopAndDestroy()
|
||||
|
||||
// Configuration for receiver node
|
||||
receiverConfig := *utilities.DefaultWakuConfig
|
||||
receiverConfig.Relay = true
|
||||
receiverNode, err := testlibs.Wrappers_StartWakuNode(&receiverConfig, logger.Named("ReceiverNode"))
|
||||
require.NoError(t, err)
|
||||
defer receiverNode.Wrappers_StopAndDestroy()
|
||||
|
||||
logger.Debug("Connecting sender and receiver")
|
||||
err = senderNode.Wrappers_ConnectPeer(receiverNode)
|
||||
require.NoError(t, err)
|
||||
|
||||
logger.Debug("Subscribing receiver to the default pubsub topic")
|
||||
defaultPubsubTopic := utilities.DefaultPubsubTopic
|
||||
err = receiverNode.Wrappers_RelaySubscribe(defaultPubsubTopic)
|
||||
require.NoError(t, err)
|
||||
|
||||
logger.Debug("Creating and publishing message")
|
||||
message := senderNode.Wrappers_CreateMessage()
|
||||
msgHash, err := senderNode.Wrappers_RelayPublish(defaultPubsubTopic, message)
|
||||
require.NoError(t, err)
|
||||
require.NotEmpty(t, msgHash)
|
||||
|
||||
logger.Debug("Waiting to ensure message delivery")
|
||||
time.Sleep(2 * time.Second)
|
||||
|
||||
logger.Debug("Verifying message reception using the new wrapper")
|
||||
err = receiverNode.Wrappers_VerifyMessageReceived(message, msgHash)
|
||||
require.NoError(t, err, "message verification failed")
|
||||
|
||||
logger.Debug("TestRelayMessageTransmission completed successfully")
|
||||
}
|
||||
|
||||
BIN
waku/store.sqlite3
Normal file
BIN
waku/store.sqlite3
Normal file
Binary file not shown.
BIN
waku/store.sqlite3-shm
Normal file
BIN
waku/store.sqlite3-shm
Normal file
Binary file not shown.
BIN
waku/store.sqlite3-wal
Normal file
BIN
waku/store.sqlite3-wal
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user