logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git

scheduled_activity_view_test.exs (2272B)


  1. # Pleroma: A lightweight social networking server
  2. # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
  3. # SPDX-License-Identifier: AGPL-3.0-only
  4. defmodule Pleroma.Web.MastodonAPI.ScheduledActivityViewTest do
  5. use Pleroma.DataCase, async: true
  6. alias Pleroma.ScheduledActivity
  7. alias Pleroma.UnstubbedConfigMock, as: ConfigMock
  8. alias Pleroma.Web.ActivityPub.ActivityPub
  9. alias Pleroma.Web.CommonAPI
  10. alias Pleroma.Web.CommonAPI.Utils
  11. alias Pleroma.Web.MastodonAPI.ScheduledActivityView
  12. alias Pleroma.Web.MastodonAPI.StatusView
  13. import Mox
  14. import Pleroma.Factory
  15. test "A scheduled activity with a media attachment" do
  16. user = insert(:user)
  17. {:ok, activity} = CommonAPI.post(user, %{status: "hi"})
  18. scheduled_at =
  19. NaiveDateTime.utc_now()
  20. |> NaiveDateTime.add(:timer.minutes(10), :millisecond)
  21. |> NaiveDateTime.to_iso8601()
  22. file = %Plug.Upload{
  23. content_type: "image/jpeg",
  24. path: Path.absname("test/fixtures/image.jpg"),
  25. filename: "an_image.jpg"
  26. }
  27. ConfigMock
  28. |> stub_with(Pleroma.Test.StaticConfig)
  29. {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id)
  30. attrs = %{
  31. params: %{
  32. "media_ids" => [upload.id],
  33. "status" => "hi",
  34. "sensitive" => true,
  35. "spoiler_text" => "spoiler",
  36. "visibility" => "unlisted",
  37. "in_reply_to_id" => to_string(activity.id)
  38. },
  39. scheduled_at: scheduled_at
  40. }
  41. {:ok, scheduled_activity} = ScheduledActivity.create(user, attrs)
  42. result = ScheduledActivityView.render("show.json", %{scheduled_activity: scheduled_activity})
  43. expected = %{
  44. id: to_string(scheduled_activity.id),
  45. media_attachments:
  46. %{media_ids: [upload.id]}
  47. |> Utils.attachments_from_ids(user)
  48. |> Enum.map(&StatusView.render("attachment.json", %{attachment: &1})),
  49. params: %{
  50. in_reply_to_id: to_string(activity.id),
  51. media_ids: [upload.id],
  52. poll: nil,
  53. scheduled_at: nil,
  54. sensitive: true,
  55. spoiler_text: "spoiler",
  56. text: "hi",
  57. visibility: "unlisted",
  58. expires_in: nil
  59. },
  60. scheduled_at: Utils.to_masto_date(scheduled_activity.scheduled_at)
  61. }
  62. assert expected == result
  63. end
  64. end