diff --git a/lib/pleroma/web/mastodon_api/views/user_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex similarity index 80% rename from lib/pleroma/web/mastodon_api/views/user_view.ex rename to lib/pleroma/web/mastodon_api/views/account_view.ex index 88e32d6f9..5f6ca84d0 100644 --- a/lib/pleroma/web/mastodon_api/views/user_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -24,4 +24,13 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do header_static: "" } end + + def render("mention.json", %{user: user}) do + %{ + id: user.id, + acct: user.nickname, + username: user.nickname, + url: user.ap_id + } + end end diff --git a/test/web/mastodon_api/account_view_test.exs b/test/web/mastodon_api/account_view_test.exs new file mode 100644 index 000000000..f0c8673ad --- /dev/null +++ b/test/web/mastodon_api/account_view_test.exs @@ -0,0 +1,42 @@ +defmodule Pleroma.Web.MastodonAPI.AccountViewTest do + use Pleroma.DataCase + import Pleroma.Factory + alias Pleroma.Web.MastodonAPI.AccountView + + test "Represent a user account" do + user = insert(:user, %{info: %{"note_count" => 5, "follower_count" => 3}}) + + expected = %{ + id: user.id, + username: user.nickname, + acct: user.nickname, + display_name: user.name, + locked: false, + created_at: user.inserted_at, + followers_count: 3, + following_count: 0, + statuses_count: 5, + note: user.bio, + url: user.ap_id, + avatar: "https://placehold.it/48x48", + avatar_static: "https://placehold.it/48x48", + header: "", + header_static: "" + } + + assert expected == AccountView.render("account.json", %{user: user}) + end + + test "Represent a smaller mention" do + user = insert(:user) + + expected = %{ + id: user.id, + acct: user.nickname, + username: user.nickname, + url: user.ap_id + } + + assert expected == AccountView.render("mention.json", %{user: user}) + end +end