unpin when deleting a status
authorEgor Kislitsyn <egor@kislitsyn.com>
Fri, 11 Jan 2019 05:31:31 +0000 (12:31 +0700)
committerEgor Kislitsyn <egor@kislitsyn.com>
Fri, 11 Jan 2019 05:31:31 +0000 (12:31 +0700)
lib/pleroma/web/common_api/common_api.ex
test/web/common_api/common_api_test.exs

index 7ec6aa0ea8eff3089c7535c78c9e2d73b2909668..2902905fd399c3c939aba11e49eb1dfc71f9b998 100644 (file)
@@ -14,6 +14,7 @@ defmodule Pleroma.Web.CommonAPI do
     with %Activity{data: %{"object" => %{"id" => object_id}}} <- Repo.get(Activity, activity_id),
          %Object{} = object <- Object.normalize(object_id),
          true <- user.info.is_moderator || user.ap_id == object.data["actor"],
+         {:ok, _} <- unpin(activity_id, user),
          {:ok, delete} <- ActivityPub.delete(object) do
       {:ok, delete}
     end
index eb69ea4b2682ec88d48ca87b8d490d4e0cf6e8cf..a3aff5897b80787a2ab4532634ff2bfd758ae29e 100644 (file)
@@ -109,6 +109,11 @@ defmodule Pleroma.Web.CommonAPI.Test do
 
     test "pin status", %{user: user, activity: activity} do
       assert {:ok, ^activity} = CommonAPI.pin(activity.id, user)
+
+      id = activity.id
+      user = refresh_record(user)
+
+      assert %User{info: %{pinned_activities: [^id]}} = user
     end
 
     test "only self-authored can be pinned", %{activity: activity} do
@@ -131,7 +136,25 @@ defmodule Pleroma.Web.CommonAPI.Test do
     test "unpin status", %{user: user, activity: activity} do
       {:ok, activity} = CommonAPI.pin(activity.id, user)
 
+      user = refresh_record(user)
+
       assert {:ok, ^activity} = CommonAPI.unpin(activity.id, user)
+
+      user = refresh_record(user)
+
+      assert %User{info: %{pinned_activities: []}} = user
+    end
+
+    test "should unpin status when deleting a status", %{user: user, activity: activity} do
+      {:ok, activity} = CommonAPI.pin(activity.id, user)
+
+      user = refresh_record(user)
+
+      assert {:ok, _} = CommonAPI.delete(activity.id, user)
+
+      user = refresh_record(user)
+
+      assert %User{info: %{pinned_activities: []}} = user
     end
   end
 end