diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/conversation/participation_test.exs | 14 | ||||
| -rw-r--r-- | test/web/pleroma_api/controllers/pleroma_api_controller_test.exs | 27 | 
2 files changed, 41 insertions, 0 deletions
| diff --git a/test/conversation/participation_test.exs b/test/conversation/participation_test.exs index a5af0d1b2..64c350904 100644 --- a/test/conversation/participation_test.exs +++ b/test/conversation/participation_test.exs @@ -133,6 +133,20 @@ defmodule Pleroma.Conversation.ParticipationTest do      refute participation.read    end +  test "it marks all the user's participations as read" do +    user = insert(:user) +    other_user = insert(:user) +    participation1 = insert(:participation, %{read: false, user: user}) +    participation2 = insert(:participation, %{read: false, user: user}) +    participation3 = insert(:participation, %{read: false, user: other_user}) + +    {:ok, [%{read: true}, %{read: true}]} = Participation.mark_all_as_read(user) + +    assert Participation.get(participation1.id).read == true +    assert Participation.get(participation2.id).read == true +    assert Participation.get(participation3.id).read == false +  end +    test "gets all the participations for a user, ordered by updated at descending" do      user = insert(:user)      {:ok, activity_one} = CommonAPI.post(user, %{"status" => "x", "visibility" => "direct"}) diff --git a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs b/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs index 8a6528cbb..9cccc8c8a 100644 --- a/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs +++ b/test/web/pleroma_api/controllers/pleroma_api_controller_test.exs @@ -95,6 +95,33 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      assert other_user in participation.recipients    end +  test "POST /api/v1/pleroma/conversations/read", %{conn: conn} do +    user = insert(:user) +    other_user = insert(:user) + +    {:ok, _activity} = +      CommonAPI.post(user, %{"status" => "Hi @#{other_user.nickname}", "visibility" => "direct"}) + +    {:ok, _activity} = +      CommonAPI.post(user, %{"status" => "Hi @#{other_user.nickname}", "visibility" => "direct"}) + +    [participation2, participation1] = Participation.for_user(other_user) +    assert Participation.get(participation2.id).read == false +    assert Participation.get(participation1.id).read == false +    assert User.get_cached_by_id(other_user.id).info.unread_conversation_count == 2 + +    [%{"unread" => false}, %{"unread" => false}] = +      conn +      |> assign(:user, other_user) +      |> post("/api/v1/pleroma/conversations/read", %{}) +      |> json_response(200) + +    [participation2, participation1] = Participation.for_user(other_user) +    assert Participation.get(participation2.id).read == true +    assert Participation.get(participation1.id).read == true +    assert User.get_cached_by_id(other_user.id).info.unread_conversation_count == 0 +  end +    describe "POST /api/v1/pleroma/notifications/read" do      test "it marks a single notification as read", %{conn: conn} do        user1 = insert(:user) | 
