logo

pleroma

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

digest_test.exs (1689B)


  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 Mix.Tasks.Pleroma.DigestTest do
  5. use Pleroma.DataCase
  6. import Pleroma.Factory
  7. import Swoosh.TestAssertions
  8. alias Pleroma.Tests.ObanHelpers
  9. alias Pleroma.Web.CommonAPI
  10. setup_all do
  11. Mix.shell(Mix.Shell.Process)
  12. on_exit(fn ->
  13. Mix.shell(Mix.Shell.IO)
  14. end)
  15. :ok
  16. end
  17. setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
  18. setup do
  19. Mox.stub_with(Pleroma.UnstubbedConfigMock, Pleroma.Config)
  20. :ok
  21. end
  22. describe "pleroma.digest test" do
  23. test "Sends digest to the given user" do
  24. user1 = insert(:user)
  25. user2 = insert(:user)
  26. Enum.each(0..10, fn i ->
  27. {:ok, _activity} =
  28. CommonAPI.post(user1, %{
  29. status: "hey ##{i} @#{user2.nickname}!"
  30. })
  31. end)
  32. yesterday =
  33. NaiveDateTime.add(
  34. NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
  35. -60 * 60 * 24,
  36. :second
  37. )
  38. {:ok, yesterday_date} = Timex.format(yesterday, "%F", :strftime)
  39. :ok = Mix.Tasks.Pleroma.Digest.run(["test", user2.nickname, yesterday_date])
  40. ObanHelpers.perform_all()
  41. assert_receive {:mix_shell, :info, [message]}
  42. assert message =~ "Digest email have been sent"
  43. assert_email_sent(
  44. to: {user2.name, user2.email},
  45. html_body:
  46. Regex.compile!(
  47. "here is what you've missed!"
  48. |> Phoenix.HTML.html_escape()
  49. |> Phoenix.HTML.safe_to_string(),
  50. "i"
  51. )
  52. )
  53. end
  54. end
  55. end