scheduled_activity_view_test.exs (2102B)
- # Pleroma: A lightweight social networking server
- # Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
- # SPDX-License-Identifier: AGPL-3.0-only
- defmodule Pleroma.Web.MastodonAPI.ScheduledActivityViewTest do
- use Pleroma.DataCase
- alias Pleroma.ScheduledActivity
- alias Pleroma.Web.ActivityPub.ActivityPub
- alias Pleroma.Web.CommonAPI
- alias Pleroma.Web.CommonAPI.Utils
- alias Pleroma.Web.MastodonAPI.ScheduledActivityView
- alias Pleroma.Web.MastodonAPI.StatusView
- import Pleroma.Factory
- test "A scheduled activity with a media attachment" do
- user = insert(:user)
- {:ok, activity} = CommonAPI.post(user, %{status: "hi"})
- scheduled_at =
- NaiveDateTime.utc_now()
- |> NaiveDateTime.add(:timer.minutes(10), :millisecond)
- |> NaiveDateTime.to_iso8601()
- file = %Plug.Upload{
- content_type: "image/jpg",
- path: Path.absname("test/fixtures/image.jpg"),
- filename: "an_image.jpg"
- }
- {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id)
- attrs = %{
- params: %{
- "media_ids" => [upload.id],
- "status" => "hi",
- "sensitive" => true,
- "spoiler_text" => "spoiler",
- "visibility" => "unlisted",
- "in_reply_to_id" => to_string(activity.id)
- },
- scheduled_at: scheduled_at
- }
- {:ok, scheduled_activity} = ScheduledActivity.create(user, attrs)
- result = ScheduledActivityView.render("show.json", %{scheduled_activity: scheduled_activity})
- expected = %{
- id: to_string(scheduled_activity.id),
- media_attachments:
- %{media_ids: [upload.id]}
- |> Utils.attachments_from_ids()
- |> Enum.map(&StatusView.render("attachment.json", %{attachment: &1})),
- params: %{
- in_reply_to_id: to_string(activity.id),
- media_ids: [upload.id],
- poll: nil,
- scheduled_at: nil,
- sensitive: true,
- spoiler_text: "spoiler",
- text: "hi",
- visibility: "unlisted"
- },
- scheduled_at: Utils.to_masto_date(scheduled_activity.scheduled_at)
- }
- assert expected == result
- end
- end