Skip to content

Commit

Permalink
Test fix
Browse files Browse the repository at this point in the history
  • Loading branch information
alwx committed Apr 15, 2024
1 parent 5aaf245 commit 752ec5a
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 37 deletions.
22 changes: 4 additions & 18 deletions protocol/messenger_peersyncing.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,23 +146,15 @@ func (m *Messenger) sendDatasyncOffersForCommunities() error {
for id := range community.Chats() {
chatIDs = append(chatIDs, []byte(community.IDString()+id))
}

if len(chatIDs) == 0 {
continue
}

availableMessages, err := m.peersyncing.AvailableMessagesByChatIDs(chatIDs, maxAdvertiseMessages)
availableMessagesMap, err := m.peersyncing.AvailableMessagesMapByChatIDs(chatIDs, maxAdvertiseMessages)
if err != nil {
return err
}
availableMessagesMap := make(map[string][][]byte)
for _, m := range availableMessages {
chatID := types.Bytes2Hex(m.ChatID)
availableMessagesMap[chatID] = append(availableMessagesMap[chatID], m.ID)
}

datasyncMessage := &datasyncproto.Payload{}
if len(availableMessages) == 0 {
if len(availableMessagesMap) == 0 {
continue
}
for chatID, m := range availableMessagesMap {
Expand All @@ -189,18 +181,12 @@ func (m *Messenger) sendDatasyncOffersForCommunities() error {
func (m *Messenger) sendDatasyncOffersForChats() error {
for _, chat := range m.Chats() {
chatIDBytes := []byte(chat.ID)
chatIDHex := types.Bytes2Hex(chatIDBytes)
availableMessages, err := m.peersyncing.AvailableMessagesByChatIDs([][]byte{chatIDBytes}, maxAdvertiseMessages)
availableMessagesMap, err := m.peersyncing.AvailableMessagesMapByChatIDs([][]byte{chatIDBytes}, maxAdvertiseMessages)
if err != nil {
return err
}
availableMessagesMap := make(map[string][][]byte)
for _, message := range availableMessages {
availableMessagesMap[chatIDHex] = append(availableMessagesMap[chatIDHex], message.ID)
}

datasyncMessage := &datasyncproto.Payload{}
if len(availableMessages) == 0 {
if len(availableMessagesMap) == 0 {
continue
}
for _, message := range availableMessagesMap {
Expand Down
15 changes: 13 additions & 2 deletions protocol/peersyncing/peersyncing.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package peersyncing

import "github.com/status-im/status-go/eth-node/types"

type PeerSyncing struct {
persistence SyncMessagePersistence
config Config
Expand All @@ -25,8 +27,17 @@ func (p *PeerSyncing) AvailableMessages() ([]SyncMessage, error) {
return p.persistence.All()
}

func (p *PeerSyncing) AvailableMessagesByChatIDs(groupIDs [][]byte, limit int) ([]SyncMessage, error) {
return p.persistence.ByChatIDs(groupIDs, limit)
func (p *PeerSyncing) AvailableMessagesMapByChatIDs(groupIDs [][]byte, limit int) (map[string][][]byte, error) {
availableMessages, err := p.persistence.ByChatIDs(groupIDs, limit)
if err != nil {
return nil, err
}
availableMessagesMap := make(map[string][][]byte)
for _, m := range availableMessages {
chatID := types.Bytes2Hex(m.ChatID)
availableMessagesMap[chatID] = append(availableMessagesMap[chatID], m.ID)
}
return availableMessagesMap, err
}

func (p *PeerSyncing) MessagesByIDs(messageIDs [][]byte) ([]SyncMessage, error) {
Expand Down
25 changes: 8 additions & 17 deletions protocol/peersyncing/peersyncing_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,15 @@ func (s *PeerSyncingSuite) TestBasic() {
s.Require().NoError(err)
s.Require().Len(allMessages, 1)

byGroupID, err := s.p.AvailableMessagesByChatIDs([][]byte{syncMessage.ChatID}, 10)
byChatID, err := s.p.AvailableMessagesMapByChatIDs([][]byte{syncMessage.ChatID}, 10)

s.Require().NoError(err)
s.Require().Len(byGroupID, 1)
s.Require().Len(byChatID, 1)

byGroupID, err = s.p.AvailableMessagesByChatIDs([][]byte{[]byte("random-group-id")}, 10)
byChatID, err = s.p.AvailableMessagesMapByChatIDs([][]byte{[]byte("random-group-id")}, 10)

s.Require().NoError(err)
s.Require().Len(byGroupID, 0)
s.Require().Len(byChatID, 0)

newSyncMessage := SyncMessage{
ID: []byte("test-id-2"),
Expand Down Expand Up @@ -112,22 +112,13 @@ func (s *PeerSyncingSuite) TestOrderAndLimit() {
s.Require().NoError(s.p.Add(syncMessage3))
s.Require().NoError(s.p.Add(syncMessage4))

byGroupID, err := s.p.AvailableMessagesByChatIDs([][]byte{testCommunityID}, 10)
byChatID, err := s.p.AvailableMessagesMapByChatIDs([][]byte{testCommunityID}, 10)

s.Require().NoError(err)
s.Require().Len(byGroupID, 4)
s.Require().Len(byChatID, 4)

s.Require().Equal(syncMessage1.ID, byGroupID[3].ID)
s.Require().Equal(syncMessage2.ID, byGroupID[2].ID)
s.Require().Equal(syncMessage3.ID, byGroupID[1].ID)
s.Require().Equal(syncMessage4.ID, byGroupID[0].ID)

byGroupID, err = s.p.AvailableMessagesByChatIDs([][]byte{testCommunityID}, 3)
byChatID, err = s.p.AvailableMessagesMapByChatIDs([][]byte{testCommunityID}, 3)

s.Require().NoError(err)
s.Require().Len(byGroupID, 3)

s.Require().Equal(syncMessage2.ID, byGroupID[2].ID)
s.Require().Equal(syncMessage3.ID, byGroupID[1].ID)
s.Require().Equal(syncMessage4.ID, byGroupID[0].ID)
s.Require().Len(byChatID, 3)
}

0 comments on commit 752ec5a

Please sign in to comment.