diff options
| author | lain <lain@soykaf.club> | 2019-09-13 16:31:27 +0200 | 
|---|---|---|
| committer | lain <lain@soykaf.club> | 2019-09-13 16:31:27 +0200 | 
| commit | a7f31bf06cfe3f8e2549393f34d6573854d783c0 (patch) | |
| tree | f53d6747ee73044f7b342d3fdae3d30b5b5b3c90 /test/web/pleroma_api | |
| parent | f649a2e972b70dfefb7bfc110b27a0194cda51c5 (diff) | |
| parent | 0d9609894f4f4557da2db62a33da1b8995c9e1d7 (diff) | |
| download | pleroma-a7f31bf06cfe3f8e2549393f34d6573854d783c0.tar.gz pleroma-a7f31bf06cfe3f8e2549393f34d6573854d783c0.zip | |
Merge remote-tracking branch 'origin/develop' into reactions
Diffstat (limited to 'test/web/pleroma_api')
| -rw-r--r-- | test/web/pleroma_api/pleroma_api_controller_test.exs | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/test/web/pleroma_api/pleroma_api_controller_test.exs b/test/web/pleroma_api/pleroma_api_controller_test.exs index fa85d9174..3c2a087ca 100644 --- a/test/web/pleroma_api/pleroma_api_controller_test.exs +++ b/test/web/pleroma_api/pleroma_api_controller_test.exs @@ -6,6 +6,7 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do    use Pleroma.Web.ConnCase    alias Pleroma.Conversation.Participation +  alias Pleroma.Notification    alias Pleroma.Repo    alias Pleroma.Web.CommonAPI @@ -130,4 +131,59 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIControllerTest do      assert user in participation.recipients      assert other_user in participation.recipients    end + +  describe "POST /api/v1/pleroma/notifications/read" do +    test "it marks a single notification as read", %{conn: conn} do +      user1 = insert(:user) +      user2 = insert(:user) +      {:ok, activity1} = CommonAPI.post(user2, %{"status" => "hi @#{user1.nickname}"}) +      {:ok, activity2} = CommonAPI.post(user2, %{"status" => "hi @#{user1.nickname}"}) +      {:ok, [notification1]} = Notification.create_notifications(activity1) +      {:ok, [notification2]} = Notification.create_notifications(activity2) + +      response = +        conn +        |> assign(:user, user1) +        |> post("/api/v1/pleroma/notifications/read", %{"id" => "#{notification1.id}"}) +        |> json_response(:ok) + +      assert %{"pleroma" => %{"is_seen" => true}} = response +      assert Repo.get(Notification, notification1.id).seen +      refute Repo.get(Notification, notification2.id).seen +    end + +    test "it marks multiple notifications as read", %{conn: conn} do +      user1 = insert(:user) +      user2 = insert(:user) +      {:ok, _activity1} = CommonAPI.post(user2, %{"status" => "hi @#{user1.nickname}"}) +      {:ok, _activity2} = CommonAPI.post(user2, %{"status" => "hi @#{user1.nickname}"}) +      {:ok, _activity3} = CommonAPI.post(user2, %{"status" => "HIE @#{user1.nickname}"}) + +      [notification3, notification2, notification1] = Notification.for_user(user1, %{limit: 3}) + +      [response1, response2] = +        conn +        |> assign(:user, user1) +        |> post("/api/v1/pleroma/notifications/read", %{"max_id" => "#{notification2.id}"}) +        |> json_response(:ok) + +      assert %{"pleroma" => %{"is_seen" => true}} = response1 +      assert %{"pleroma" => %{"is_seen" => true}} = response2 +      assert Repo.get(Notification, notification1.id).seen +      assert Repo.get(Notification, notification2.id).seen +      refute Repo.get(Notification, notification3.id).seen +    end + +    test "it returns error when notification not found", %{conn: conn} do +      user1 = insert(:user) + +      response = +        conn +        |> assign(:user, user1) +        |> post("/api/v1/pleroma/notifications/read", %{"id" => "22222222222222"}) +        |> json_response(:bad_request) + +      assert response == %{"error" => "Cannot get notification"} +    end +  end  end | 
