1 defmodule Pleroma.Web.ActivityPub.UserViewTest do
5 alias Pleroma.Web.ActivityPub.UserView
7 test "Renders a user, including the public key" do
9 {:ok, user} = Pleroma.Web.WebFinger.ensure_keys_present(user)
11 result = UserView.render("user.json", %{user: user})
13 assert result["id"] == user.ap_id
14 assert result["preferredUsername"] == user.nickname
16 assert String.contains?(result["publicKey"]["publicKeyPem"], "BEGIN PUBLIC KEY")
19 describe "endpoints" do
20 test "local users have a usable endpoints structure" do
22 {:ok, user} = Pleroma.Web.WebFinger.ensure_keys_present(user)
24 result = UserView.render("user.json", %{user: user})
26 assert result["id"] == user.ap_id
30 "oauthAuthorizationEndpoint" => _,
31 "oauthRegistrationEndpoint" => _,
32 "oauthTokenEndpoint" => _
33 } = result["endpoints"]
36 test "remote users have an empty endpoints structure" do
37 user = insert(:user, local: false)
38 {:ok, user} = Pleroma.Web.WebFinger.ensure_keys_present(user)
40 result = UserView.render("user.json", %{user: user})
42 assert result["id"] == user.ap_id
43 assert result["endpoints"] == %{}
46 test "instance users do not expose oAuth endpoints" do
47 user = insert(:user, nickname: nil, local: true)
48 {:ok, user} = Pleroma.Web.WebFinger.ensure_keys_present(user)
50 result = UserView.render("user.json", %{user: user})
52 refute result["endpoints"]["oauthAuthorizationEndpoint"]
53 refute result["endpoints"]["oauthRegistrationEndpoint"]
54 refute result["endpoints"]["oauthTokenEndpoint"]