aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-05-11 10:58:14 +0200
committerlain <lain@soykaf.club>2020-05-11 10:58:14 +0200
commitfdb98715b8e6ced7c4037b1292fb10980a994803 (patch)
treed20d9551899d2b4f222f4567c4d26ed7f5fadd22
parent1b1dfb54eb092921fe9dab2c49928e5b04fa049b (diff)
downloadpleroma-fdb98715b8e6ced7c4037b1292fb10980a994803.tar.gz
Chat: Fix wrong query.
-rw-r--r--lib/pleroma/chat.ex1
-rw-r--r--test/chat_test.exs17
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex
index 6a03ee3c1..4c92a58c7 100644
--- a/lib/pleroma/chat.ex
+++ b/lib/pleroma/chat.ex
@@ -29,6 +29,7 @@ defmodule Pleroma.Chat do
def last_message_for_chat(chat) do
messages_for_chat_query(chat)
|> order_by(desc: :id)
+ |> limit(1)
|> Repo.one()
end
diff --git a/test/chat_test.exs b/test/chat_test.exs
index 943e48111..dfcb6422e 100644
--- a/test/chat_test.exs
+++ b/test/chat_test.exs
@@ -6,9 +6,26 @@ defmodule Pleroma.ChatTest do
use Pleroma.DataCase, async: true
alias Pleroma.Chat
+ alias Pleroma.Web.CommonAPI
import Pleroma.Factory
+ describe "messages" do
+ test "it returns the last message in a chat" do
+ user = insert(:user)
+ recipient = insert(:user)
+
+ {:ok, _message_1} = CommonAPI.post_chat_message(user, recipient, "hey")
+ {:ok, _message_2} = CommonAPI.post_chat_message(recipient, user, "ho")
+
+ {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id)
+
+ message = Chat.last_message_for_chat(chat)
+
+ assert message.data["content"] == "ho"
+ end
+ end
+
describe "creation and getting" do
test "it only works if the recipient is a valid user (for now)" do
user = insert(:user)