X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=test%2Fweb%2Fmastodon_api%2Fstatus_view_test.exs;h=d9a0a8a95aed9dc34e8c46801bca42128e2242ef;hb=5bfb7b4ce6c23f84c27643e9871b78b867f86b7e;hp=870a205f110c5d30d663370aebcdb0fc52d0539b;hpb=a8701282d422b8108b4998de4a9bea6cebf199ea;p=akkoma diff --git a/test/web/mastodon_api/status_view_test.exs b/test/web/mastodon_api/status_view_test.exs index 870a205f1..d9a0a8a95 100644 --- a/test/web/mastodon_api/status_view_test.exs +++ b/test/web/mastodon_api/status_view_test.exs @@ -4,6 +4,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do alias Pleroma.Web.MastodonAPI.{StatusView, AccountView} alias Pleroma.User alias Pleroma.Web.OStatus + alias Pleroma.Web.CommonAPI import Pleroma.Factory test "a note activity" do @@ -12,13 +13,14 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do status = StatusView.render("status.json", %{activity: note}) - created_at = (note.data["object"]["published"] || "") - |> String.replace(~r/\.\d+Z/, ".000Z") + created_at = + (note.data["object"]["published"] || "") + |> String.replace(~r/\.\d+Z/, ".000Z") expected = %{ - id: note.id, + id: to_string(note.id), uri: note.data["object"]["id"], - url: note.data["object"]["external_id"], + url: note.data["object"]["id"], account: AccountView.render("account.json", %{user: user}), in_reply_to_id: nil, in_reply_to_account_id: nil, @@ -31,7 +33,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do favourited: false, muted: false, sensitive: false, - spoiler_text: "", + spoiler_text: note.data["object"]["summary"], visibility: "public", media_attachments: [], mentions: [], @@ -40,15 +42,40 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do name: "Web", website: nil }, - language: nil + language: nil, + emojis: [ + %{ + shortcode: "2hu", + url: "corndog.png", + static_url: "corndog.png" + } + ] } assert status == expected end + test "a reply" do + note = insert(:note_activity) + user = insert(:user) + + {:ok, activity} = + CommonAPI.post(user, %{"status" => "he", "in_reply_to_status_id" => note.id}) + + status = StatusView.render("status.json", %{activity: activity}) + + assert status.in_reply_to_id == note.id + + [status] = StatusView.render("index.json", %{activities: [activity], as: :activity}) + + assert status.in_reply_to_id == note.id + end + test "contains mentions" do incoming = File.read!("test/fixtures/incoming_reply_mastodon.xml") - user = insert(:user, %{ap_id: "https://pleroma.soykaf.com/users/lain"}) + # a user with this ap id might be in the cache. + recipient = "https://pleroma.soykaf.com/users/lain" + user = insert(:user, %{ap_id: recipient}) {:ok, [activity]} = OStatus.handle_incoming(incoming) @@ -70,7 +97,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do } expected = %{ - id: 1638338801, + id: "1638338801", type: "image", url: "someurl", remote_url: "someurl", @@ -82,6 +109,19 @@ defmodule Pleroma.Web.MastodonAPI.StatusViewTest do # If theres a "id", use that instead of the generated one object = Map.put(object, "id", 2) - assert %{id: 2} = StatusView.render("attachment.json", %{attachment: object}) + assert %{id: "2"} = StatusView.render("attachment.json", %{attachment: object}) + end + + test "a reblog" do + user = insert(:user) + activity = insert(:note_activity) + + {:ok, reblog, _} = CommonAPI.repeat(activity.id, user) + + represented = StatusView.render("status.json", %{for: user, activity: reblog}) + + assert represented[:id] == to_string(reblog.id) + assert represented[:reblog][:id] == to_string(activity.id) + assert represented[:emojis] == [] end end