summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormarcin mikołajczak <git@mkljczk.pl>2022-01-12 21:39:14 +0100
committermarcin mikołajczak <git@mkljczk.pl>2022-01-12 22:41:34 +0100
commiteedf551eedd7acb854498303259598ad7aa72b1c (patch)
tree4a3f2561c1cdbeb87522aea6ce098c519deefd26 /test
parent0f90fd58052aa372aaad63d769cd724046c9f61f (diff)
Add more tests
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
Diffstat (limited to 'test')
-rw-r--r--test/pleroma/user_test.exs35
-rw-r--r--test/pleroma/web/common_api_test.exs12
-rw-r--r--test/pleroma/web/mastodon_api/controllers/account_controller_test.exs41
-rw-r--r--test/pleroma/web/pleroma_api/controllers/account_controller_test.exs25
4 files changed, 97 insertions, 16 deletions
diff --git a/test/pleroma/user_test.exs b/test/pleroma/user_test.exs
index 6cd93c34c..0345a9290 100644
--- a/test/pleroma/user_test.exs
+++ b/test/pleroma/user_test.exs
@@ -2498,4 +2498,39 @@ defmodule Pleroma.UserTest do
%{object: %{data: %{"id" => object_id}}} = Activity.get_by_id_with_object(id)
object_id
end
+
+ describe "account endorsements" do
+ test "it pins people" do
+ user = insert(:user)
+ pinned_user = insert(:user)
+
+ {:ok, _pinned_user, _user} = User.follow(user, pinned_user)
+
+ refute User.endorses?(user, pinned_user)
+
+ {:ok, _user_relationship} = User.endorse(user, pinned_user)
+
+ assert User.endorses?(user, pinned_user)
+ end
+
+ test "it unpins users" do
+ user = insert(:user)
+ pinned_user = insert(:user)
+
+ {:ok, _pinned_user, _user} = User.follow(user, pinned_user)
+ {:ok, _user_relationship} = User.endorse(user, pinned_user)
+ {:ok, _user_pin} = User.unendorse(user, pinned_user)
+
+ refute User.endorses?(user, pinned_user)
+ end
+
+ test "it doesn't pin users you do not follow" do
+ user = insert(:user)
+ pinned_user = insert(:user)
+
+ assert {:error, _message} = User.endorse(user, pinned_user)
+
+ refute User.endorses?(user, pinned_user)
+ end
+ end
end
diff --git a/test/pleroma/web/common_api_test.exs b/test/pleroma/web/common_api_test.exs
index ad0b87543..4b186ccfc 100644
--- a/test/pleroma/web/common_api_test.exs
+++ b/test/pleroma/web/common_api_test.exs
@@ -1207,6 +1207,18 @@ defmodule Pleroma.Web.CommonAPITest do
refute User.subscribed_to?(follower, followed)
end
+ test "also unpins a user" do
+ [follower, followed] = insert_pair(:user)
+ {:ok, follower, followed, _} = CommonAPI.follow(follower, followed)
+ {:ok, _endorsement} = User.endorse(follower, followed)
+
+ assert User.endorses?(follower, followed)
+
+ {:ok, follower} = CommonAPI.unfollow(follower, followed)
+
+ refute User.endorses?(follower, followed)
+ end
+
test "cancels a pending follow for a local user" do
follower = insert(:user)
followed = insert(:user, is_locked: true)
diff --git a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs
index 828ebddd6..bba528d83 100644
--- a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs
+++ b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs
@@ -1845,12 +1845,9 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
setup do: clear_config([:instance, :max_endorsed_users], 1)
test "pin account", %{user: user, conn: conn} do
- %{id: id1} = insert(:user)
+ %{id: id1} = other_user1 = insert(:user)
- conn
- |> put_req_header("content-type", "application/json")
- |> post("/api/v1/accounts/#{id1}/follow")
- |> json_response_and_validate_schema(200)
+ CommonAPI.follow(user, other_user1)
assert %{"id" => ^id1, "endorsed" => true} =
conn
@@ -1865,19 +1862,31 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do
|> json_response_and_validate_schema(200)
end
- test "max pinned accounts", %{user: user, conn: conn} do
- %{id: id1} = insert(:user)
- %{id: id2} = insert(:user)
+ test "unpin account", %{user: user, conn: conn} do
+ %{id: id1} = other_user1 = insert(:user)
- conn
- |> put_req_header("content-type", "application/json")
- |> post("/api/v1/accounts/#{id1}/follow")
- |> json_response_and_validate_schema(200)
+ CommonAPI.follow(user, other_user1)
+ User.endorse(user, other_user1)
- conn
- |> put_req_header("content-type", "application/json")
- |> post("/api/v1/accounts/#{id2}/follow")
- |> json_response_and_validate_schema(200)
+ assert %{"id" => ^id1, "endorsed" => false} =
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> post("/api/v1/accounts/#{id1}/unpin")
+ |> json_response_and_validate_schema(200)
+
+ assert [] =
+ conn
+ |> put_req_header("content-type", "application/json")
+ |> get("/api/v1/endorsements")
+ |> json_response_and_validate_schema(200)
+ end
+
+ test "max pinned accounts", %{user: user, conn: conn} do
+ %{id: id1} = other_user1 = insert(:user)
+ %{id: id2} = other_user2 = insert(:user)
+
+ CommonAPI.follow(user, other_user1)
+ CommonAPI.follow(user, other_user2)
conn
|> put_req_header("content-type", "application/json")
diff --git a/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs b/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs
index ad271c31b..d9aa8ce55 100644
--- a/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs
+++ b/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs
@@ -279,4 +279,29 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do
assert %{"error" => "Record not found"} = json_response_and_validate_schema(conn, 404)
end
end
+
+ describe "account endorsements" do
+ test "returns a list of pinned accounts", %{conn: conn} do
+ %{id: id1} = user1 = insert(:user)
+ %{id: id2} = user2 = insert(:user)
+ %{id: id3} = user3 = insert(:user)
+
+ CommonAPI.follow(user1, user2)
+ CommonAPI.follow(user1, user3)
+
+ User.endorse(user1, user2)
+ User.endorse(user1, user3)
+
+ [%{"id" => ^id2}, %{"id" => ^id3}] =
+ conn
+ |> get("/api/v1/pleroma/accounts/#{id1}/endorsements")
+ |> json_response_and_validate_schema(200)
+ end
+
+ test "returns 404 error when specified user is not exist", %{conn: conn} do
+ conn = get(conn, "/api/v1/pleroma/accounts/test/endorsements")
+
+ assert json_response_and_validate_schema(conn, 404) == %{"error" => "Record not found"}
+ end
+ end
end