diff options
author | feld <feld@feld.me> | 2024-08-16 00:36:31 +0000 |
---|---|---|
committer | feld <feld@feld.me> | 2024-08-16 00:36:31 +0000 |
commit | c91fc03e6193cb82e5565abf7eee157210252152 (patch) | |
tree | 6789bde6aa322913708cafee0489fc699177b74d /test | |
parent | 3119ed3648b29ff1ef70045ef9f7d10f92906a5d (diff) | |
parent | 8cd8cea3fb5ce87e5f92dfb45a667c47f78b6b02 (diff) | |
download | pleroma-c91fc03e6193cb82e5565abf7eee157210252152.tar.gz pleroma-c91fc03e6193cb82e5565abf7eee157210252152.zip |
Merge branch 'norifications-marker' into 'develop'
Fix 'Setting a marker should mark notifications as read'
Closes #2769
See merge request pleroma/pleroma!4223
Diffstat (limited to 'test')
-rw-r--r-- | test/pleroma/web/mastodon_api/controllers/marker_controller_test.exs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/pleroma/web/mastodon_api/controllers/marker_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/marker_controller_test.exs index d8f7b2638..4050528ff 100644 --- a/test/pleroma/web/mastodon_api/controllers/marker_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/marker_controller_test.exs @@ -5,6 +5,10 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do use Pleroma.Web.ConnCase, async: true + alias Pleroma.Notification + alias Pleroma.Repo + alias Pleroma.Web.CommonAPI + import Pleroma.Factory describe "GET /api/v1/markers" do @@ -127,5 +131,36 @@ defmodule Pleroma.Web.MastodonAPI.MarkerControllerTest do assert response == %{"error" => "Insufficient permissions: write:statuses."} end + + test "marks notifications as read", %{conn: conn} do + user1 = insert(:user) + token = insert(:oauth_token, user: user1, scopes: ["write:statuses"]) + + 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}) + + refute Repo.get(Notification, notification1.id).seen + refute Repo.get(Notification, notification2.id).seen + refute Repo.get(Notification, notification3.id).seen + + conn + |> assign(:user, user1) + |> assign(:token, token) + |> put_req_header("content-type", "application/json") + |> post("/api/v1/markers", %{ + notifications: %{last_read_id: to_string(notification2.id)} + }) + |> json_response_and_validate_schema(200) + + [notification3, notification2, notification1] = Notification.for_user(user1, %{limit: 3}) + + assert Repo.get(Notification, notification1.id).seen + assert Repo.get(Notification, notification2.id).seen + refute Repo.get(Notification, notification3.id).seen + end end end |