66 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
| # Pleroma: A lightweight social networking server
 | |
| # Copyright © 2017-2021 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)
 | |
| 
 | |
|   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
 | 
