announcement_test.exs (3178B)
- # Pleroma: A lightweight social networking server
- # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
- # SPDX-License-Identifier: AGPL-3.0-only
- defmodule Pleroma.AnnouncementTest do
- alias Pleroma.Announcement
- use Pleroma.DataCase, async: true
- import Pleroma.Factory
- describe "list_all_visible_when/1" do
- setup do: {:ok, time: NaiveDateTime.utc_now()}
- test "with no start or end time", %{time: time} do
- _announcement = insert(:announcement)
- assert [_] = Announcement.list_all_visible_when(time)
- end
- test "with start time before current", %{time: time} do
- before_now = NaiveDateTime.add(time, -10, :second)
- _announcement = insert(:announcement, %{starts_at: before_now})
- assert [_] = Announcement.list_all_visible_when(time)
- end
- test "with start time after current", %{time: time} do
- after_now = NaiveDateTime.add(time, 10, :second)
- _announcement = insert(:announcement, %{starts_at: after_now})
- assert [] = Announcement.list_all_visible_when(time)
- end
- test "with end time after current", %{time: time} do
- after_now = NaiveDateTime.add(time, 10, :second)
- _announcement = insert(:announcement, %{ends_at: after_now})
- assert [_] = Announcement.list_all_visible_when(time)
- end
- test "with end time before current", %{time: time} do
- before_now = NaiveDateTime.add(time, -10, :second)
- _announcement = insert(:announcement, %{ends_at: before_now})
- assert [] = Announcement.list_all_visible_when(time)
- end
- test "with both start and end time", %{time: time} do
- before_now = NaiveDateTime.add(time, -10, :second)
- after_now = NaiveDateTime.add(time, 10, :second)
- _announcement = insert(:announcement, %{starts_at: before_now, ends_at: after_now})
- assert [_] = Announcement.list_all_visible_when(time)
- end
- test "with both start and end time, current not in the range", %{time: time} do
- before_now = NaiveDateTime.add(time, -10, :second)
- after_now = NaiveDateTime.add(time, 10, :second)
- _announcement = insert(:announcement, %{starts_at: after_now, ends_at: before_now})
- assert [] = Announcement.list_all_visible_when(time)
- end
- end
- describe "announcements formatting" do
- test "it formats links" do
- raw = "something on https://pleroma.social ."
- announcement = insert(:announcement, %{data: %{"content" => raw}})
- assert announcement.rendered["content"] =~ ~r(<a.+?https://pleroma.social)
- assert announcement.data["content"] == raw
- end
- test "it formats mentions" do
- user = insert(:user)
- raw = "something on @#{user.nickname} ."
- announcement = insert(:announcement, %{data: %{"content" => raw}})
- assert announcement.rendered["content"] =~ ~r(<a.+?#{user.nickname})
- assert announcement.data["content"] == raw
- end
- test "it formats tags" do
- raw = "something on #mew ."
- announcement = insert(:announcement, %{data: %{"content" => raw}})
- assert announcement.rendered["content"] =~ ~r(<a.+?#mew)
- assert announcement.data["content"] == raw
- end
- end
- end