Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into feature/unfollow...
[akkoma] / test / web / twitter_api / representers / user_representer_test.exs
index f08e392f93bef60adac93db256e325d8d23a5a81..913d1322c0b20518e3e64f136937009510623517 100644 (file)
@@ -3,21 +3,25 @@ defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do
 
   alias Pleroma.User
   alias Pleroma.Web.TwitterAPI.Representers.UserRepresenter
+  alias Pleroma.Builders.UserBuilder
+
+  import Pleroma.Factory
 
   setup do
-    user = %User{
-      email: "test@example.org",
-      name: "Test Name",
-      nickname: "testname",
-      password_hash: Comeonin.Pbkdf2.hashpwsalt("test"),
-      bio: "A tester."
-    }
-    user = Repo.insert!(user)
+    user = insert(:user)
     [user: user]
   end
 
+  test "A user with an avatar object", %{user: user} do
+    image = "image"
+    user = %{ user | avatar: %{ "url" => [%{"href" => image}] }}
+    represented = UserRepresenter.to_map(user)
+    assert represented["profile_image_url"] == image
+  end
+
   test "A user", %{user: user} do
     image = "https://placehold.it/48x48"
+
     represented = %{
       "id" => user.id,
       "name" => user.name,
@@ -38,4 +42,28 @@ defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do
 
     assert represented == UserRepresenter.to_map(user)
   end
+
+  test "A user for a given other follower", %{user: user} do
+    {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]})
+    image = "https://placehold.it/48x48"
+    represented = %{
+      "id" => user.id,
+      "name" => user.name,
+      "screen_name" => user.nickname,
+      "description" => user.bio,
+      # Fake fields
+      "favourites_count" => 0,
+      "statuses_count" => 0,
+      "friends_count" => 0,
+      "followers_count" => 0,
+      "profile_image_url" => image,
+      "profile_image_url_https" => image,
+      "profile_image_url_profile_size" => image,
+      "profile_image_url_original" => image,
+      "following" => true,
+      "rights" => %{}
+    }
+
+    assert represented == UserRepresenter.to_map(user, %{for: follower})
+  end
 end