Add avatar objects to user, fix specs.
[akkoma] / test / web / twitter_api / representers / user_representer_test.exs
1 defmodule Pleroma.Web.TwitterAPI.Representers.UserRepresenterTest do
2 use Pleroma.DataCase
3
4 alias Pleroma.User
5 alias Pleroma.Web.TwitterAPI.Representers.UserRepresenter
6 alias Pleroma.Builders.UserBuilder
7
8 import Pleroma.Factory
9
10 setup do
11 # {:ok, user} = UserBuilder.insert
12 user = insert(:user)
13 [user: user]
14 end
15
16 test "A user", %{user: user} do
17 image = "https://placehold.it/48x48"
18 image = if user.avatar do
19
20 else
21 image
22 end
23
24 represented = %{
25 "id" => user.id,
26 "name" => user.name,
27 "screen_name" => user.nickname,
28 "description" => user.bio,
29 # Fake fields
30 "favourites_count" => 0,
31 "statuses_count" => 0,
32 "friends_count" => 0,
33 "followers_count" => 0,
34 "profile_image_url" => image,
35 "profile_image_url_https" => image,
36 "profile_image_url_profile_size" => image,
37 "profile_image_url_original" => image,
38 "following" => false,
39 "rights" => %{}
40 }
41
42 assert represented == UserRepresenter.to_map(user)
43 end
44
45 test "A user for a given other follower", %{user: user} do
46 {:ok, follower} = UserBuilder.insert(%{following: [User.ap_followers(user)]})
47 image = "https://placehold.it/48x48"
48 represented = %{
49 "id" => user.id,
50 "name" => user.name,
51 "screen_name" => user.nickname,
52 "description" => user.bio,
53 # Fake fields
54 "favourites_count" => 0,
55 "statuses_count" => 0,
56 "friends_count" => 0,
57 "followers_count" => 0,
58 "profile_image_url" => image,
59 "profile_image_url_https" => image,
60 "profile_image_url_profile_size" => image,
61 "profile_image_url_original" => image,
62 "following" => true,
63 "rights" => %{}
64 }
65
66 assert represented == UserRepresenter.to_map(user, %{for: follower})
67 end
68 end