User: Never return nil for user follower counts.
authorlain <lain@soykaf.club>
Wed, 27 Nov 2019 13:13:36 +0000 (14:13 +0100)
committerlain <lain@soykaf.club>
Wed, 27 Nov 2019 13:13:36 +0000 (14:13 +0100)
lib/pleroma/user.ex
test/user_test.exs

index 3010fe87fd46976784a3cd1e24229fc344869c4a..16d0889c4fe0e6efe916ded4dbd3bae899dac71d 100644 (file)
@@ -178,8 +178,8 @@ defmodule Pleroma.User do
   def ap_following(%User{} = user), do: "#{ap_id(user)}/following"
 
   def user_info(%User{} = user, args \\ %{}) do
-    following_count = Map.get(args, :following_count, user.following_count)
-    follower_count = Map.get(args, :follower_count, user.follower_count)
+    following_count = Map.get(args, :following_count, user.following_count) || 0
+    follower_count = Map.get(args, :follower_count, user.follower_count) || 0
 
     %{
       note_count: user.note_count,
index e6302b5255c87d04dcb6ce12f7d83fac51193d4a..4917ea9ce758d444b0270528676f6b1dd2d1d045 100644 (file)
@@ -1347,6 +1347,14 @@ defmodule Pleroma.UserTest do
     assert User.user_info(user).follower_count == 2
   end
 
+  test "with nil follower count fields, 0 will be returned" do
+    user = insert(:user, follower_count: nil, following_count: nil)
+    user_info = User.user_info(user)
+
+    assert user_info.follower_count == 0
+    assert user_info.following_count == 0
+  end
+
   describe "list_inactive_users_query/1" do
     defp days_ago(days) do
       NaiveDateTime.add(