Ensure all supported push notification subscription alert types are tested
[akkoma] / test / pleroma / web / mastodon_api / controllers / subscription_controller_test.exs
index d36bb1ae8f75beb1202d820eab5c97afcc1f1760..3792609655d3e488ce48ac314e7919ef5429a341 100644 (file)
@@ -59,7 +59,15 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionControllerTest do
         conn
         |> post("/api/v1/push/subscription", %{
           "data" => %{
-            "alerts" => %{"mention" => true, "test" => true, "pleroma:chat_mention" => true}
+            "alerts" => %{
+              "mention" => true,
+              "favourite" => true,
+              "follow" => true,
+              "reblog" => true,
+              "pleroma:chat_mention" => true,
+              "pleroma:emoji_reaction" => true,
+              "test" => true
+            }
           },
           "subscription" => @sub
         })
@@ -68,7 +76,14 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionControllerTest do
       [subscription] = Pleroma.Repo.all(Subscription)
 
       assert %{
-               "alerts" => %{"mention" => true, "pleroma:chat_mention" => true},
+               "alerts" => %{
+                 "mention" => true,
+                 "favourite" => true,
+                 "follow" => true,
+                 "reblog" => true,
+                 "pleroma:chat_mention" => true,
+                 "pleroma:emoji_reaction" => true
+               },
                "endpoint" => subscription.endpoint,
                "id" => to_string(subscription.id),
                "server_key" => @server_key
@@ -124,7 +139,16 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionControllerTest do
         insert(:push_subscription,
           user: user,
           token: token,
-          data: %{"alerts" => %{"mention" => true}}
+          data: %{
+            "alerts" => %{
+              "mention" => true,
+              "favourite" => true,
+              "follow" => true,
+              "reblog" => true,
+              "pleroma:chat_mention" => true,
+              "pleroma:emoji_reaction" => true
+            }
+          }
         )
 
       %{conn: conn, user: user, token: token, subscription: subscription}
@@ -133,7 +157,16 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionControllerTest do
     test "returns error when push disabled ", %{conn: conn} do
       assert_error_when_disable_push do
         conn
-        |> put("/api/v1/push/subscription", %{data: %{"alerts" => %{"mention" => false}}})
+        |> put("/api/v1/push/subscription", %{
+          data: %{
+            "mention" => false,
+            "favourite" => false,
+            "follow" => false,
+            "reblog" => false,
+            "pleroma:chat_mention" => false,
+            "pleroma:emoji_reaction" => false
+          }
+        })
         |> json_response_and_validate_schema(403)
       end
     end
@@ -142,12 +175,28 @@ defmodule Pleroma.Web.MastodonAPI.SubscriptionControllerTest do
       res =
         conn
         |> put("/api/v1/push/subscription", %{
-          data: %{"alerts" => %{"mention" => false, "follow" => true}}
+          data: %{
+            "alerts" => %{
+              "mention" => false,
+              "favourite" => false,
+              "follow" => false,
+              "reblog" => false,
+              "pleroma:chat_mention" => false,
+              "pleroma:emoji_reaction" => false
+            }
+          }
         })
         |> json_response_and_validate_schema(200)
 
       expect = %{
-        "alerts" => %{"follow" => true, "mention" => false},
+        "alerts" => %{
+          "mention" => false,
+          "favourite" => false,
+          "follow" => false,
+          "reblog" => false,
+          "pleroma:chat_mention" => false,
+          "pleroma:emoji_reaction" => false
+        },
         "endpoint" => "https://example.com/example/1234",
         "id" => to_string(subscription.id),
         "server_key" => @server_key