diff options
| -rw-r--r-- | lib/pleroma/notification.ex | 6 | ||||
| -rw-r--r-- | test/notification_test.exs | 6 | ||||
| -rw-r--r-- | test/web/mastodon_api/views/notification_view_test.exs | 2 | 
3 files changed, 12 insertions, 2 deletions
| diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 0b171563b..b4719896e 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -441,6 +441,7 @@ defmodule Pleroma.Notification do          |> Multi.insert(:notification, %Notification{            user_id: user.id,            activity: activity, +          seen: mark_as_read?(activity, user),            type: type_from_activity(activity)          })          |> Marker.multi_set_last_read_id(user, "notifications") @@ -634,6 +635,11 @@ defmodule Pleroma.Notification do    def skip?(_, _, _), do: false +  def mark_as_read?(activity, target_user) do +    user = Activity.user_actor(activity) +    User.mutes_user?(target_user, user) +  end +    def for_user_and_activity(user, activity) do      from(n in __MODULE__,        where: n.user_id == ^user.id, diff --git a/test/notification_test.exs b/test/notification_test.exs index 8243cfd34..93f4761da 100644 --- a/test/notification_test.exs +++ b/test/notification_test.exs @@ -217,7 +217,10 @@ defmodule Pleroma.NotificationTest do        muter = Repo.get(User, muter.id)        {:ok, activity} = CommonAPI.post(muted, %{status: "Hi @#{muter.nickname}"}) -      assert Notification.create_notification(activity, muter) +      notification = Notification.create_notification(activity, muter) + +      assert notification.id +      assert notification.seen      end      test "notification created if user is muted without notifications" do @@ -1012,6 +1015,7 @@ defmodule Pleroma.NotificationTest do        [notification] = Notification.for_user(user)        assert notification.activity.object +      assert notification.seen      end      test "it doesn't return notifications for muted user with notifications", %{user: user} do diff --git a/test/web/mastodon_api/views/notification_view_test.exs b/test/web/mastodon_api/views/notification_view_test.exs index 8e0e58538..2f6a808f1 100644 --- a/test/web/mastodon_api/views/notification_view_test.exs +++ b/test/web/mastodon_api/views/notification_view_test.exs @@ -219,7 +219,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do      expected = %{        id: to_string(notification.id), -      pleroma: %{is_seen: false, is_muted: true}, +      pleroma: %{is_seen: true, is_muted: true},        type: "favourite",        account: AccountView.render("show.json", %{user: another_user, for: user}),        status: StatusView.render("show.json", %{activity: create_activity, for: user}), | 
