X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fchat_test.exs;h=9e8a9ebf01abcca2ba80528c72ecef060e79afc8;hb=9c672ecbb5d4477cd16d2139a2cb66d3923ac5c8;hp=dfcb6422e113de1dad9d81aaa154c287009b6354;hpb=af6d01ec93a07cd896bc4f0a2c2cf437c6fd51fc;p=akkoma diff --git a/test/chat_test.exs b/test/chat_test.exs index dfcb6422e..9e8a9ebf0 100644 --- a/test/chat_test.exs +++ b/test/chat_test.exs @@ -6,41 +6,46 @@ 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 + describe "creation and getting" do + test "it only works if the recipient is a valid user (for now)" 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") + assert {:error, _chat} = Chat.bump_or_create(user.id, "http://some/nonexisting/account") + assert {:error, _chat} = Chat.get_or_create(user.id, "http://some/nonexisting/account") + end - {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id) + test "it creates a chat for a user and recipient" do + user = insert(:user) + other_user = insert(:user) - message = Chat.last_message_for_chat(chat) + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) - assert message.data["content"] == "ho" + assert chat.id end - end - describe "creation and getting" do - test "it only works if the recipient is a valid user (for now)" do + test "deleting the user deletes the chat" do user = insert(:user) + other_user = insert(:user) - assert {:error, _chat} = Chat.bump_or_create(user.id, "http://some/nonexisting/account") - assert {:error, _chat} = Chat.get_or_create(user.id, "http://some/nonexisting/account") + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) + + Repo.delete(user) + + refute Chat.get_by_id(chat.id) end - test "it creates a chat for a user and recipient" do + test "deleting the recipient deletes the chat" do user = insert(:user) other_user = insert(:user) {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) - assert chat.id + Repo.delete(other_user) + + refute Chat.get_by_id(chat.id) end test "it returns and bumps a chat for a user and recipient if it already exists" do @@ -51,7 +56,6 @@ defmodule Pleroma.ChatTest do {:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id) assert chat.id == chat_two.id - assert chat_two.unread == 2 end test "it returns a chat for a user and recipient if it already exists" do @@ -64,15 +68,13 @@ defmodule Pleroma.ChatTest do assert chat.id == chat_two.id end - test "a returning chat will have an updated `update_at` field and an incremented unread count" do + test "a returning chat will have an updated `update_at` field" do user = insert(:user) other_user = insert(:user) {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) - assert chat.unread == 1 :timer.sleep(1500) {:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id) - assert chat_two.unread == 2 assert chat.id == chat_two.id assert chat.updated_at != chat_two.updated_at