From c6bdc5960c4dbbdd5d5d86b6d49669611392c73f Mon Sep 17 00:00:00 2001 From: Roger Braun Date: Sat, 9 Sep 2017 12:09:53 +0200 Subject: Test for Mastodon AccountView Handles users and mentions. --- lib/pleroma/web/mastodon_api/views/account_view.ex | 36 +++++++++++++++++++ lib/pleroma/web/mastodon_api/views/user_view.ex | 27 -------------- test/web/mastodon_api/account_view_test.exs | 42 ++++++++++++++++++++++ 3 files changed, 78 insertions(+), 27 deletions(-) create mode 100644 lib/pleroma/web/mastodon_api/views/account_view.ex delete mode 100644 lib/pleroma/web/mastodon_api/views/user_view.ex create mode 100644 test/web/mastodon_api/account_view_test.exs diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex new file mode 100644 index 000000000..5f6ca84d0 --- /dev/null +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -0,0 +1,36 @@ +defmodule Pleroma.Web.MastodonAPI.AccountView do + use Pleroma.Web, :view + alias Pleroma.User + + def render("account.json", %{user: user}) do + image = User.avatar_url(user) + user_info = User.user_info(user) + + %{ + id: user.id, + username: user.nickname, + acct: user.nickname, + display_name: user.name, + locked: false, + created_at: user.inserted_at, + followers_count: user_info.follower_count, + following_count: user_info.following_count, + statuses_count: user_info.note_count, + note: user.bio, + url: user.ap_id, + avatar: image, + avatar_static: image, + header: "", + 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/lib/pleroma/web/mastodon_api/views/user_view.ex b/lib/pleroma/web/mastodon_api/views/user_view.ex deleted file mode 100644 index 88e32d6f9..000000000 --- a/lib/pleroma/web/mastodon_api/views/user_view.ex +++ /dev/null @@ -1,27 +0,0 @@ -defmodule Pleroma.Web.MastodonAPI.AccountView do - use Pleroma.Web, :view - alias Pleroma.User - - def render("account.json", %{user: user}) do - image = User.avatar_url(user) - user_info = User.user_info(user) - - %{ - id: user.id, - username: user.nickname, - acct: user.nickname, - display_name: user.name, - locked: false, - created_at: user.inserted_at, - followers_count: user_info.follower_count, - following_count: user_info.following_count, - statuses_count: user_info.note_count, - note: user.bio, - url: user.ap_id, - avatar: image, - avatar_static: image, - header: "", - header_static: "" - } - 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 -- cgit v1.2.3