Merge remote-tracking branch 'origin/develop' into apps-api-endpoint
[akkoma] / test / pleroma / web / mastodon_api / controllers / suggestion_controller_test.exs
index 803a38c676eecd49c032cd4dffd8037223b83a3d..89273e67bd3251204ec0c8ee7af2067ec34064ea 100644 (file)
@@ -5,6 +5,7 @@
 defmodule Pleroma.Web.MastodonAPI.SuggestionControllerTest do
   use Pleroma.Web.ConnCase, async: true
   alias Pleroma.UserRelationship
+  alias Pleroma.Web.CommonAPI
   import Pleroma.Factory
 
   setup do: oauth_access(["read", "write"])
@@ -29,6 +30,45 @@ defmodule Pleroma.Web.MastodonAPI.SuggestionControllerTest do
     assert [%{"source" => "staff", "account" => %{"id" => ^user_id}}] = res
   end
 
+  test "returns v2 suggestions excluding dismissed accounts", %{conn: conn} do
+    %{id: user_id} = insert(:user, is_suggested: true)
+
+    conn
+    |> delete("/api/v1/suggestions/#{user_id}")
+    |> json_response_and_validate_schema(200)
+
+    res =
+      conn
+      |> get("/api/v2/suggestions")
+      |> json_response_and_validate_schema(200)
+
+    assert [] = res
+  end
+
+  test "returns v2 suggestions excluding blocked accounts", %{conn: conn, user: blocker} do
+    blocked = insert(:user, is_suggested: true)
+    {:ok, _} = CommonAPI.block(blocker, blocked)
+
+    res =
+      conn
+      |> get("/api/v2/suggestions")
+      |> json_response_and_validate_schema(200)
+
+    assert [] = res
+  end
+
+  test "returns v2 suggestions excluding followed accounts", %{conn: conn, user: follower} do
+    followed = insert(:user, is_suggested: true)
+    {:ok, _, _, _} = CommonAPI.follow(follower, followed)
+
+    res =
+      conn
+      |> get("/api/v2/suggestions")
+      |> json_response_and_validate_schema(200)
+
+    assert [] = res
+  end
+
   test "dismiss suggestion", %{conn: conn, user: source} do
     target = insert(:user, is_suggested: true)