93
test/service/notifier/email_test.exs
Normal file
93
test/service/notifier/email_test.exs
Normal file
@@ -0,0 +1,93 @@
|
||||
defmodule Mobilizon.Service.Notifier.EmailTest do
|
||||
@moduledoc """
|
||||
Test the Email notifier module
|
||||
"""
|
||||
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.Service.Notifier.Email
|
||||
alias Mobilizon.Users.{ActivitySetting, Setting, User}
|
||||
alias Mobilizon.Web.Email.Activity, as: EmailActivity
|
||||
|
||||
use Mobilizon.DataCase
|
||||
use Bamboo.Test
|
||||
|
||||
import Mobilizon.Factory
|
||||
|
||||
describe "Returns if the module is loaded" do
|
||||
test "Loaded by default" do
|
||||
assert Email.ready?() == true
|
||||
end
|
||||
|
||||
test "If disabled" do
|
||||
Config.put([Email, :enabled], false)
|
||||
assert Email.ready?() == false
|
||||
Config.put([Email, :enabled], true)
|
||||
end
|
||||
end
|
||||
|
||||
describe "sending email for activities" do
|
||||
test "when the user doesn't allow 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, group_notifications: :none)
|
||||
user = %User{user | settings: user_settings}
|
||||
|
||||
assert {:ok, :skipped} == Email.send(user, activity)
|
||||
|
||||
refute_delivered_email(
|
||||
EmailActivity.direct_activity(
|
||||
user.email,
|
||||
[activity]
|
||||
)
|
||||
)
|
||||
end
|
||||
|
||||
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)
|
||||
|
||||
%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 "not if we already have sent notifications" 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_day,
|
||||
last_notification_sent: DateTime.add(DateTime.utc_now(), 3600)
|
||||
)
|
||||
|
||||
%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, :skipped} == Email.send(user, activity)
|
||||
|
||||
refute_delivered_email(
|
||||
EmailActivity.direct_activity(
|
||||
user.email,
|
||||
[activity]
|
||||
)
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
64
test/service/notifier/push_test.exs
Normal file
64
test/service/notifier/push_test.exs
Normal file
@@ -0,0 +1,64 @@
|
||||
defmodule Mobilizon.Service.Notifier.PushTest do
|
||||
@moduledoc """
|
||||
Test the Push notifier module
|
||||
"""
|
||||
|
||||
alias Mobilizon.Activities.Activity
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.Service.Notifier.Push
|
||||
alias Mobilizon.Users.{ActivitySetting, Setting, User}
|
||||
|
||||
use Mobilizon.DataCase
|
||||
use Bamboo.Test
|
||||
|
||||
import Mobilizon.Factory
|
||||
|
||||
describe "Returns if the module is loaded" do
|
||||
test "Loaded by default" do
|
||||
assert Push.ready?() == true
|
||||
end
|
||||
|
||||
test "If disabled" do
|
||||
Config.put([Push, :enabled], false)
|
||||
assert Push.ready?() == false
|
||||
Config.put([Push, :enabled], true)
|
||||
end
|
||||
end
|
||||
|
||||
describe "sending push notification for activities" do
|
||||
test "when the user doesn't allow 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)
|
||||
user = %User{user | settings: user_settings}
|
||||
|
||||
assert {:ok, :skipped} == Push.send(user, activity)
|
||||
end
|
||||
|
||||
test "when the user allows it" do
|
||||
event = insert(:event)
|
||||
|
||||
%Activity{} =
|
||||
activity =
|
||||
insert(:mobilizon_activity,
|
||||
inserted_at: DateTime.utc_now(),
|
||||
object_id: to_string(event.id),
|
||||
subject_params: %{
|
||||
"event_title" => event.title,
|
||||
"event_uuid" => event.uuid,
|
||||
"event_id" => event.id
|
||||
}
|
||||
)
|
||||
|
||||
%User{} = user = insert(:user)
|
||||
%Setting{} = user_settings = insert(:settings, user_id: user.id)
|
||||
|
||||
%ActivitySetting{} =
|
||||
activity_setting =
|
||||
insert(:mobilizon_activity_setting, user_id: user.id, user: user, method: "push")
|
||||
|
||||
user = %User{user | settings: user_settings, activity_settings: [activity_setting]}
|
||||
assert {:ok, :sent} == Push.send(user, activity)
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user