mirror of
https://github.com/status-im/status-console-client.git
synced 2025-02-24 08:38:15 +00:00
62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"crypto/ecdsa"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/status-im/status-term-client/protocol/v1"
|
||
|
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
type message struct {
|
||
|
chat string
|
||
|
data []byte
|
||
|
}
|
||
|
|
||
|
type PublicChatMock struct {
|
||
|
messages []message
|
||
|
}
|
||
|
|
||
|
func (m *PublicChatMock) SubscribePublicChat(name string) (MessagesSubscription, error) {
|
||
|
return &WhisperSubscription{}, nil
|
||
|
}
|
||
|
|
||
|
func (m *PublicChatMock) SendPublicMessage(chatName string, data []byte, identity *ecdsa.PrivateKey) (string, error) {
|
||
|
m.messages = append(m.messages, message{chatName, data})
|
||
|
return "", nil
|
||
|
}
|
||
|
|
||
|
type ChatMock struct {
|
||
|
*PublicChatMock
|
||
|
}
|
||
|
|
||
|
func (m *ChatMock) RequestPublicMessages(chatName string, params RequestMessagesParams) error {
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func TestSendMessage(t *testing.T) {
|
||
|
chatName := "test-chat"
|
||
|
payload := []byte("test message")
|
||
|
chatMock := ChatMock{
|
||
|
&PublicChatMock{},
|
||
|
}
|
||
|
vc, err := NewChatViewController(nil, nil, &chatMock)
|
||
|
require.NoError(t, err)
|
||
|
vc.currentContact = Contact{chatName, ContactPublicChat}
|
||
|
|
||
|
_, err = vc.SendMessage(payload)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
message := chatMock.messages[0]
|
||
|
require.Equal(t, chatName, message.chat)
|
||
|
statusMessage, err := protocol.DecodeMessage(message.data)
|
||
|
require.NoError(t, err)
|
||
|
require.EqualValues(t, payload, statusMessage.Text)
|
||
|
require.Equal(t, protocol.ContentTypeTextPlain, statusMessage.ContentT)
|
||
|
require.Equal(t, protocol.MessageTypePublicGroupUserMessage, statusMessage.MessageT)
|
||
|
require.Equal(t,
|
||
|
protocol.StatusMessageContent{ChatID: chatName, Text: string(payload)},
|
||
|
statusMessage.Content)
|
||
|
}
|