github.com/status-im/status-go@v1.1.0/protocol/messenger_response_test.go (about) 1 package protocol 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/status-im/status-go/protocol/common" 9 ) 10 11 func TestMessengerResponseMergeChats(t *testing.T) { 12 chat1 := &Chat{ID: "1"} 13 modifiedChat1 := &Chat{ID: "1", Name: "name"} 14 chat2 := &Chat{ID: "3"} 15 response1 := &MessengerResponse{} 16 response1.AddChat(chat1) 17 18 response2 := &MessengerResponse{} 19 response2.AddChats([]*Chat{modifiedChat1, chat2}) 20 21 require.NoError(t, response1.Merge(response2)) 22 23 require.Len(t, response1.Chats(), 2) 24 require.Equal(t, modifiedChat1, response1.chats[modifiedChat1.ID]) 25 require.Equal(t, chat2, response1.chats[chat2.ID]) 26 } 27 28 func TestMessengerResponseMergeMessages(t *testing.T) { 29 message1 := &common.Message{ID: "1"} 30 modifiedMessage1 := &common.Message{ID: "1", From: "name"} 31 message2 := &common.Message{ID: "3"} 32 response1 := &MessengerResponse{} 33 response1.AddMessage(message1) 34 35 response2 := &MessengerResponse{} 36 response2.AddMessage(modifiedMessage1) 37 response2.AddMessage(message2) 38 39 require.NoError(t, response1.Merge(response2)) 40 41 require.Len(t, response1.Messages(), 2) 42 messages := response1.Messages() 43 if messages[0].ID == modifiedMessage1.ID { 44 require.Equal(t, modifiedMessage1, messages[0]) 45 require.Equal(t, message2, messages[1]) 46 } else { 47 require.Equal(t, modifiedMessage1, messages[1]) 48 require.Equal(t, message2, messages[0]) 49 } 50 51 } 52 53 func TestMessengerResponseMergeNotImplemented(t *testing.T) { 54 response1 := &MessengerResponse{} 55 56 response2 := &MessengerResponse{ 57 Invitations: []*GroupChatInvitation{{}}, 58 } 59 require.Error(t, response1.Merge(response2)) 60 61 }