messages: Implements /messages API
This commit is contained in:
@@ -107,6 +107,60 @@ func TestConversations(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestMessages(t *testing.T) {
|
||||
server := web.NewMockHTTPServer(web.MockHTTPServerConfiguration{})
|
||||
httpServer := httptest.NewServer(server)
|
||||
|
||||
const sender = "Alice"
|
||||
const text = "This is a test."
|
||||
|
||||
conversation := model.Conversation{
|
||||
Date: time.Now(),
|
||||
Participants: []string{sender},
|
||||
UnreadCount: 1,
|
||||
Guid: "1234567890",
|
||||
}
|
||||
|
||||
server.Server.AddConversation(conversation)
|
||||
|
||||
message := model.Message{
|
||||
Text: text,
|
||||
Sender: &conversation.Participants[0],
|
||||
Date: time.Now(),
|
||||
}
|
||||
|
||||
server.Server.AppendMessageToConversation(&conversation, message)
|
||||
|
||||
resp, err := http.Get(httpServer.URL + "/messages?guid=" + *&conversation.Guid)
|
||||
if err != nil {
|
||||
t.Fatalf("TestMessages error: %s", err)
|
||||
}
|
||||
|
||||
body, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
t.Fatalf("Error decoding body: %s", body)
|
||||
}
|
||||
|
||||
var messages []model.Message
|
||||
err = json.Unmarshal(body, &messages)
|
||||
if err != nil {
|
||||
t.Fatalf("Error unmarshalling JSON: %s", err)
|
||||
}
|
||||
|
||||
if len(messages) != 1 {
|
||||
t.Fatalf("Unexpected num messages: %d (expected %d)", len(messages), 1)
|
||||
}
|
||||
|
||||
fetchedMessage := messages[0]
|
||||
if fetchedMessage.Text != message.Text {
|
||||
t.Fatalf("Unexpected message text: %s (expected %s)", fetchedMessage.Text, message.Text)
|
||||
}
|
||||
|
||||
if *fetchedMessage.Sender != *message.Sender {
|
||||
t.Fatalf("Unexpected message sender: %s (expected %s)", *fetchedMessage.Sender, *message.Sender)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAuthentication(t *testing.T) {
|
||||
s := web.NewMockHTTPServer(web.MockHTTPServerConfiguration{AuthEnabled: true})
|
||||
httpServer := httptest.NewServer(s)
|
||||
|
||||
Reference in New Issue
Block a user