distraction.party/test/mix/tasks/pleroma/digest_test.exs

61 lines
1.4 KiB
Elixir
Raw Normal View History

2020-10-12 17:00:50 +00:00
# Pleroma: A lightweight social networking server
# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
2019-06-03 23:48:21 +00:00
defmodule Mix.Tasks.Pleroma.DigestTest do
use Pleroma.DataCase
import Pleroma.Factory
import Swoosh.TestAssertions
alias Pleroma.Tests.ObanHelpers
2019-06-03 23:48:21 +00:00
alias Pleroma.Web.CommonAPI
setup_all do
Mix.shell(Mix.Shell.Process)
on_exit(fn ->
Mix.shell(Mix.Shell.IO)
end)
:ok
end
2020-08-19 09:57:29 +00:00
setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true)
2019-06-03 23:48:21 +00:00
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, %{
2020-05-12 19:59:26 +00:00
status: "hey ##{i} @#{user2.nickname}!"
2019-06-03 23:48:21 +00:00
})
end)
2019-06-04 00:38:53 +00:00
yesterday =
NaiveDateTime.add(
NaiveDateTime.truncate(NaiveDateTime.utc_now(), :second),
-60 * 60 * 24,
:second
)
2019-06-03 23:48:21 +00:00
2019-06-04 00:38:53 +00:00
{:ok, yesterday_date} = Timex.format(yesterday, "%F", :strftime)
:ok = Mix.Tasks.Pleroma.Digest.run(["test", user2.nickname, yesterday_date])
ObanHelpers.perform_all()
2019-06-04 00:38:53 +00:00
assert_receive {:mix_shell, :info, [message]}
2019-06-04 00:07:49 +00:00
assert message =~ "Digest email have been sent"
2019-06-03 23:48:21 +00:00
assert_email_sent(
to: {user2.name, user2.email},
2019-08-14 13:46:05 +00:00
html_body: ~r/here is what you've missed!/i
2019-06-03 23:48:21 +00:00
)
end
end
end