diff options
| -rw-r--r-- | lib/pleroma/web/push/impl.ex | 12 | ||||
| -rw-r--r-- | test/pleroma/web/push/impl_test.exs | 15 | 
2 files changed, 26 insertions, 1 deletions
diff --git a/lib/pleroma/web/push/impl.ex b/lib/pleroma/web/push/impl.ex index daf3eeb9e..3c5f00764 100644 --- a/lib/pleroma/web/push/impl.ex +++ b/lib/pleroma/web/push/impl.ex @@ -16,7 +16,7 @@ defmodule Pleroma.Web.Push.Impl do    require Logger    import Ecto.Query -  @types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact"] +  @types ["Create", "Follow", "Announce", "Like", "Move", "EmojiReact", "Update"]    @doc "Performs sending notifications for user subscriptions"    @spec perform(Notification.t()) :: list(any) | :error | {:error, :unknown_type} @@ -174,6 +174,15 @@ defmodule Pleroma.Web.Push.Impl do      end    end +  def format_body( +        %{activity: %{data: %{"type" => "Update"}}}, +        actor, +        _object, +        _mastodon_type +      ) do +    "@#{actor.nickname} edited a status" +  end +    def format_title(activity, mastodon_type \\ nil)    def format_title(%{activity: %{data: %{"directMessage" => true}}}, _mastodon_type) do @@ -187,6 +196,7 @@ defmodule Pleroma.Web.Push.Impl do        "follow_request" -> "New Follow Request"        "reblog" -> "New Repeat"        "favourite" -> "New Favorite" +      "update" -> "New Update"        "pleroma:chat_mention" -> "New Chat Message"        "pleroma:emoji_reaction" -> "New Reaction"        type -> "New #{String.capitalize(type || "event")}" diff --git a/test/pleroma/web/push/impl_test.exs b/test/pleroma/web/push/impl_test.exs index b8112cce5..2eee0acd9 100644 --- a/test/pleroma/web/push/impl_test.exs +++ b/test/pleroma/web/push/impl_test.exs @@ -202,6 +202,21 @@ defmodule Pleroma.Web.Push.ImplTest do               "New Reaction"    end +  test "renders title and body for update activity" do +    user = insert(:user) + +    {:ok, activity} = CommonAPI.post(user, %{status: "lorem ipsum"}) + +    {:ok, activity} = CommonAPI.update(user, activity, %{status: "edited status"}) +    object = Object.normalize(activity, fetch: false) + +    assert Impl.format_body(%{activity: activity, type: "update"}, user, object) == +             "@#{user.nickname} edited a status" + +    assert Impl.format_title(%{activity: activity, type: "update"}) == +             "New Update" +  end +    test "renders title for create activity with direct visibility" do      user = insert(:user, nickname: "Bob")  | 
