logo

pleroma

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

announcement_test.exs (3178B)


  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.AnnouncementTest do
  5. alias Pleroma.Announcement
  6. use Pleroma.DataCase, async: true
  7. import Pleroma.Factory
  8. describe "list_all_visible_when/1" do
  9. setup do: {:ok, time: NaiveDateTime.utc_now()}
  10. test "with no start or end time", %{time: time} do
  11. _announcement = insert(:announcement)
  12. assert [_] = Announcement.list_all_visible_when(time)
  13. end
  14. test "with start time before current", %{time: time} do
  15. before_now = NaiveDateTime.add(time, -10, :second)
  16. _announcement = insert(:announcement, %{starts_at: before_now})
  17. assert [_] = Announcement.list_all_visible_when(time)
  18. end
  19. test "with start time after current", %{time: time} do
  20. after_now = NaiveDateTime.add(time, 10, :second)
  21. _announcement = insert(:announcement, %{starts_at: after_now})
  22. assert [] = Announcement.list_all_visible_when(time)
  23. end
  24. test "with end time after current", %{time: time} do
  25. after_now = NaiveDateTime.add(time, 10, :second)
  26. _announcement = insert(:announcement, %{ends_at: after_now})
  27. assert [_] = Announcement.list_all_visible_when(time)
  28. end
  29. test "with end time before current", %{time: time} do
  30. before_now = NaiveDateTime.add(time, -10, :second)
  31. _announcement = insert(:announcement, %{ends_at: before_now})
  32. assert [] = Announcement.list_all_visible_when(time)
  33. end
  34. test "with both start and end time", %{time: time} do
  35. before_now = NaiveDateTime.add(time, -10, :second)
  36. after_now = NaiveDateTime.add(time, 10, :second)
  37. _announcement = insert(:announcement, %{starts_at: before_now, ends_at: after_now})
  38. assert [_] = Announcement.list_all_visible_when(time)
  39. end
  40. test "with both start and end time, current not in the range", %{time: time} do
  41. before_now = NaiveDateTime.add(time, -10, :second)
  42. after_now = NaiveDateTime.add(time, 10, :second)
  43. _announcement = insert(:announcement, %{starts_at: after_now, ends_at: before_now})
  44. assert [] = Announcement.list_all_visible_when(time)
  45. end
  46. end
  47. describe "announcements formatting" do
  48. test "it formats links" do
  49. raw = "something on https://pleroma.social ."
  50. announcement = insert(:announcement, %{data: %{"content" => raw}})
  51. assert announcement.rendered["content"] =~ ~r(<a.+?https://pleroma.social)
  52. assert announcement.data["content"] == raw
  53. end
  54. test "it formats mentions" do
  55. user = insert(:user)
  56. raw = "something on @#{user.nickname} ."
  57. announcement = insert(:announcement, %{data: %{"content" => raw}})
  58. assert announcement.rendered["content"] =~ ~r(<a.+?#{user.nickname})
  59. assert announcement.data["content"] == raw
  60. end
  61. test "it formats tags" do
  62. raw = "something on #mew ."
  63. announcement = insert(:announcement, %{data: %{"content" => raw}})
  64. assert announcement.rendered["content"] =~ ~r(<a.+?#mew)
  65. assert announcement.data["content"] == raw
  66. end
  67. end
  68. end