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  }