test "A user with emoji in username", %{user: user} do
expected =
- "<img height='32px' width='32px' alt='karjalanpiirakka' title='karjalanpiirakka' src='/file.png' /> man"
+ "<img height=\"32px\" width=\"32px\" alt=\"karjalanpiirakka\" title=\"karjalanpiirakka\" src=\"/file.png\" /> man"
user = %{
user
"background_image" => nil,
"is_local" => true,
"locked" => false,
- "default_scope" => "public"
+ "default_scope" => "public",
+ "no_rich_text" => false,
+ "fields" => []
}
assert represented == UserView.render("show.json", %{user: user})
"background_image" => nil,
"is_local" => true,
"locked" => false,
- "default_scope" => "public"
+ "default_scope" => "public",
+ "no_rich_text" => false,
+ "fields" => []
}
assert represented == UserView.render("show.json", %{user: user, for: follower})
"name" => follower.name,
"screen_name" => follower.nickname,
"name_html" => follower.name,
- "description" => HtmlSanitizeEx.strip_tags(user.bio |> String.replace("<br>", "\n")),
- "description_html" => HtmlSanitizeEx.basic_html(user.bio),
+ "description" => HtmlSanitizeEx.strip_tags(follower.bio |> String.replace("<br>", "\n")),
+ "description_html" => HtmlSanitizeEx.basic_html(follower.bio),
"created_at" => follower.inserted_at |> Utils.format_naive_asctime(),
"favourites_count" => 0,
"statuses_count" => 0,
"background_image" => nil,
"is_local" => true,
"locked" => false,
- "default_scope" => "public"
+ "default_scope" => "public",
+ "no_rich_text" => false,
+ "fields" => []
}
assert represented == UserView.render("show.json", %{user: follower, for: user})
"background_image" => nil,
"is_local" => true,
"locked" => false,
- "default_scope" => "public"
+ "default_scope" => "public",
+ "no_rich_text" => false,
+ "fields" => []
}
blocker = Repo.get(User, blocker.id)
assert represented == UserView.render("show.json", %{user: user, for: blocker})
end
+
+ test "a user with mastodon fields" do
+ fields = [
+ %{
+ "name" => "Pronouns",
+ "value" => "she/her"
+ },
+ %{
+ "name" => "Website",
+ "value" => "https://example.org/"
+ }
+ ]
+
+ user =
+ insert(:user, %{
+ info: %{
+ "source_data" => %{
+ "attachment" =>
+ Enum.map(fields, fn field -> Map.put(field, "type", "PropertyValue") end)
+ }
+ }
+ })
+
+ userview = UserView.render("show.json", %{user: user})
+ assert userview["fields"] == fields
+ end
end