ChatView: Add update_at field.
[akkoma] / test / web / pleroma_api / views / chat_view_test.exs
index 1eb0c6241deebdfb8082a0f26222a45ad210c8b3..6062a0cfef122d2e469d510141d63228c8ae0d2e 100644 (file)
@@ -2,12 +2,16 @@
 # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
-defmodule Pleroma.Web.PleromaAPI.ChatMessageViewTest do
+defmodule Pleroma.Web.PleromaAPI.ChatViewTest do
   use Pleroma.DataCase
 
   alias Pleroma.Chat
-  alias Pleroma.Web.PleromaAPI.ChatView
+  alias Pleroma.Object
+  alias Pleroma.Web.CommonAPI
+  alias Pleroma.Web.CommonAPI.Utils
   alias Pleroma.Web.MastodonAPI.AccountView
+  alias Pleroma.Web.PleromaAPI.ChatMessageView
+  alias Pleroma.Web.PleromaAPI.ChatView
 
   import Pleroma.Factory
 
@@ -21,9 +25,21 @@ defmodule Pleroma.Web.PleromaAPI.ChatMessageViewTest do
 
     assert represented_chat == %{
              id: "#{chat.id}",
-             recipient: recipient.ap_id,
-             recipient_account: AccountView.render("show.json", user: recipient),
-             unread: 0
+             account: AccountView.render("show.json", user: recipient),
+             unread: 0,
+             last_message: nil,
+             updated_at: Utils.to_masto_date(chat.updated_at)
            }
+
+    {:ok, chat_message_creation} = CommonAPI.post_chat_message(user, recipient, "hello")
+
+    chat_message = Object.normalize(chat_message_creation, false)
+
+    {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id)
+
+    represented_chat = ChatView.render("show.json", chat: chat)
+
+    assert represented_chat[:last_message] ==
+             ChatMessageView.render("show.json", chat: chat, object: chat_message)
   end
 end