new set of tests

This commit is contained in:
aya 2025-02-25 07:45:16 +02:00
parent 42333217dc
commit 3d03ccb7c3

View File

@ -533,7 +533,7 @@ func TestQueryFailWithIncorrectStaticNode(t *testing.T) {
node2Config := DefaultWakuConfig
node2Config.Relay = true
node2Config.Store = true
node2Config.Staticnodes = []string{node1Address[0].String()} // Node2 connects to Node1
node2Config.Staticnodes = []string{node1Address[0].String()}
Debug("Creating Node2 with Store enabled")
node2, err := StartWakuNode("Node2", &node2Config)
@ -562,21 +562,20 @@ func TestQueryFailWithIncorrectStaticNode(t *testing.T) {
}()
Debug("Sender Node1 is publishing a message")
queryTimestamp := proto.Int64(time.Now().UnixNano())
message := node1.CreateMessage()
msgHash, err := node1.RelayPublishNoCTX(DefaultPubsubTopic, message)
require.NoError(t, err)
require.NotEmpty(t, msgHash)
Debug("Verifying that Node3 fails to retrieve stored messages due to incorrect static node")
//storeQueryRequest := &common.StoreQueryRequest{
//TimeStart: proto.Int64(time.Now().UnixNano()), // Query messages published after this timestamp
// }
storedmsgs, err := node3.GetStoredMessages(node2, nil)
require.NoError(t, err, "Expected Node3's store query to fail due to incorrect static node")
//require.NoEmpty(t, storedMessages, "Expected no messages in store for Node3")
if (storedmsgs.Messages) != nil {
Debug("First Stored Message: Payload: %s", string((*storedmsgs.Messages)[0].WakuMessage.Payload))
storeQueryRequest := &common.StoreQueryRequest{
TimeStart: queryTimestamp,
}
storedmsgs, err := node3.GetStoredMessages(node2, storeQueryRequest)
require.NoError(t, err, "Expected Node3's store query to fail due to incorrect static node")
require.Nil(t, (*storedmsgs.Messages)[0].WakuMessage, "Expected no messages in store for Node3")
Debug("Test successfully verified store query failure due to incorrect static node configuration")
}
@ -916,3 +915,114 @@ func TestStoredMessagesWithVDifferentPayloads(t *testing.T) {
Debug("Test finished successfully ")
}
func TestStoredMessagesWithDifferentContentTopics(t *testing.T) {
Debug("Starting test for different content topics")
node1Config := DefaultWakuConfig
node1Config.Relay = true
Debug("Creating Node1")
node1, err := StartWakuNode("Node1", &node1Config)
require.NoError(t, err, "Failed to start Node1")
node2Config := DefaultWakuConfig
node2Config.Relay = true
node2Config.Store = true
Debug("Creating Node2")
node2, err := StartWakuNode("Node2", &node2Config)
require.NoError(t, err, "Failed to start Node2")
defer func() {
Debug("Stopping and destroying both nodes")
node1.StopAndDestroy()
node2.StopAndDestroy()
}()
Debug("Connecting Node2 to Node1")
err = node2.ConnectPeer(node1)
require.NoError(t, err, "Failed to connect Node2 to Node1")
for _, contentTopic := range CONTENT_TOPICS_DIFFERENT_SHARDS {
Debug("Node1 is publishing message with content topic: %s", contentTopic)
queryTimestamp := proto.Int64(time.Now().UnixNano())
message := node1.CreateMessage()
message.ContentTopic = contentTopic
msgHash, err := node1.RelayPublishNoCTX(DefaultPubsubTopic, message)
require.NoError(t, err, "Failed to publish message")
require.NotEmpty(t, msgHash, "Message hash is empty")
Debug("Querying stored messages from Node2 using Node1")
storeQueryRequest := &common.StoreQueryRequest{
TimeStart: queryTimestamp,
IncludeData: true,
ContentTopics: &[]string{contentTopic},
}
storedmsgs, err := node1.GetStoredMessages(node2, storeQueryRequest)
require.NoError(t, err, "Failed to query store messages from Node2")
require.Greater(t, len(*storedmsgs.Messages), 0, "Expected at least one stored message")
require.Equal(t, contentTopic, (*storedmsgs.Messages)[0].WakuMessage.ContentTopic, "Stored message content topic does not match expected")
Debug("Veified content topic %s ", (*storedmsgs.Messages)[0].WakuMessage.ContentTopic)
}
Debug("Test finished successfully")
}
func TestStoredMessagesWithDifferentPubsubTopics(t *testing.T) {
Debug("Starting test for different pubsub topics")
node1Config := DefaultWakuConfig
node1Config.Relay = true
Debug("Creating Node1")
node1, err := StartWakuNode("Node1", &node1Config)
require.NoError(t, err, "Failed to start Node1")
node2Config := DefaultWakuConfig
node2Config.Relay = true
node2Config.Store = true
Debug("Creating Node2")
node2, err := StartWakuNode("Node2", &node2Config)
require.NoError(t, err, "Failed to start Node2")
defer func() {
Debug("Stopping and destroying both nodes")
node1.StopAndDestroy()
node2.StopAndDestroy()
}()
Debug("Connecting Node2 to Node1")
err = node2.ConnectPeer(node1)
require.NoError(t, err, "Failed to connect Node2 to Node1")
for _, pubsubTopic := range PUBSUB_TOPICS_STORE {
Debug("Node1 is publishing message on pubsub topic: %s", pubsubTopic)
node1.RelaySubscribe(pubsubTopic)
node2.RelaySubscribe(pubsubTopic)
queryTimestamp := proto.Int64(time.Now().UnixNano())
var msg = node1.CreateMessage()
msgHash, err := node1.RelayPublishNoCTX(pubsubTopic, msg)
require.NoError(t, err, "Failed to publish message")
require.NotEmpty(t, msgHash, "Message hash is empty")
Debug("Querying stored messages from Node2 using Node1")
storeQueryRequest := &common.StoreQueryRequest{
TimeStart: queryTimestamp,
IncludeData: true,
PubsubTopic: pubsubTopic,
}
storedmsgs, err := node1.GetStoredMessages(node2, storeQueryRequest)
require.NoError(t, err, "Failed to query store messages from Node2")
require.Greater(t, len(*storedmsgs.Messages), 0, "Expected at least one stored message")
require.Equal(t, pubsubTopic, (*storedmsgs.Messages)[0].PubsubTopic, "Stored message pubsub topic does not match expected")
}
Debug("Test finished successfully")
}