digest_test.exs (1689B)
- # Pleroma: A lightweight social networking server
- # Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
- # SPDX-License-Identifier: AGPL-3.0-only
- defmodule Mix.Tasks.Pleroma.DigestTest do
- use Pleroma.DataCase
- import Pleroma.Factory
- import Swoosh.TestAssertions
- alias Pleroma.Tests.ObanHelpers
- alias Pleroma.Web.CommonAPI
- setup_all do
- Mix.shell(Mix.Shell.Process)
- on_exit(fn ->
- Mix.shell(Mix.Shell.IO)
- end)
- :ok
- end
- setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
- setup do
- Mox.stub_with(Pleroma.UnstubbedConfigMock, Pleroma.Config)
- :ok
- end
- describe "pleroma.digest test" do
- test "Sends digest to the given user" do
- user1 = insert(:user)
- user2 = insert(:user)
- Enum.each(0..10, fn i ->
- {:ok, _activity} =
- CommonAPI.post(user1, %{
- status: "hey ##{i} @#{user2.nickname}!"
- })
- end)
- yesterday =
- NaiveDateTime.add(
- NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
- -60 * 60 * 24,
- :second
- )
- {:ok, yesterday_date} = Timex.format(yesterday, "%F", :strftime)
- :ok = Mix.Tasks.Pleroma.Digest.run(["test", user2.nickname, yesterday_date])
- ObanHelpers.perform_all()
- assert_receive {:mix_shell, :info, [message]}
- assert message =~ "Digest email have been sent"
- assert_email_sent(
- to: {user2.name, user2.email},
- html_body:
- Regex.compile!(
- "here is what you've missed!"
- |> Phoenix.HTML.html_escape()
- |> Phoenix.HTML.safe_to_string(),
- "i"
- )
- )
- end
- end
- end