Send activity digests

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-06-26 15:23:22 +02:00
parent a542f94379
commit 784c607c65
95 changed files with 3259 additions and 2382 deletions

View File

@@ -46,7 +46,63 @@ defmodule Mobilizon.Service.Notifier.EmailTest do
test "when the user allows it" do
%Activity{} = activity = insert(:mobilizon_activity, inserted_at: DateTime.utc_now())
%User{} = user = insert(:user)
%Setting{} = user_settings = insert(:settings, user_id: user.id)
%Setting{} =
user_settings = insert(:settings, user_id: user.id, group_notifications: :direct)
%ActivitySetting{} =
activity_setting = insert(:mobilizon_activity_setting, user_id: user.id, user: user)
user = %User{user | settings: user_settings, activity_settings: [activity_setting]}
assert {:ok, :sent} == Email.send(user, activity)
assert_delivered_email(
EmailActivity.direct_activity(
user.email,
[activity]
)
)
end
test "if it's been an hour since the last notification" do
%Activity{} = activity = insert(:mobilizon_activity, inserted_at: DateTime.utc_now())
%User{} = user = insert(:user)
%Setting{} =
user_settings =
insert(:settings,
user_id: user.id,
group_notifications: :one_hour,
last_notification_sent: DateTime.add(DateTime.utc_now(), -3_659)
)
%ActivitySetting{} =
activity_setting = insert(:mobilizon_activity_setting, user_id: user.id, user: user)
user = %User{user | settings: user_settings, activity_settings: [activity_setting]}
assert {:ok, :sent} == Email.send(user, activity)
assert_delivered_email(
EmailActivity.direct_activity(
user.email,
[activity]
)
)
end
test "if there's no delay since the last notification" do
%Activity{} = activity = insert(:mobilizon_activity, inserted_at: DateTime.utc_now())
%User{} = user = insert(:user)
%Setting{} =
user_settings =
insert(:settings,
user_id: user.id,
group_notifications: :one_hour,
last_notification_sent: nil
)
%ActivitySetting{} =
activity_setting = insert(:mobilizon_activity_setting, user_id: user.id, user: user)