diff options
Diffstat (limited to 'test/mix/tasks')
-rw-r--r-- | test/mix/tasks/pleroma/user_test.exs | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/test/mix/tasks/pleroma/user_test.exs b/test/mix/tasks/pleroma/user_test.exs index a2178bbd1..5b170b57c 100644 --- a/test/mix/tasks/pleroma/user_test.exs +++ b/test/mix/tasks/pleroma/user_test.exs @@ -617,4 +617,93 @@ defmodule Mix.Tasks.Pleroma.UserTest do assert mod.is_confirmed end end + + describe "email_notifications" do + setup do + user = insert(:user, email_notifications: %{"digest" => false, "notifications" => []}) + [user: user] + end + + test "no changes error", %{user: user} do + Mix.Tasks.Pleroma.User.run(["email_notifications", user.nickname]) + + assert_received {:mix_shell, :error, ["No changes passed"]} + end + + test "user not found" do + Mix.Tasks.Pleroma.User.run(["email_notifications", "nickname", "--digest"]) + + assert_received {:mix_shell, :error, ["No local user nickname"]} + end + + test "all settings", %{user: user} do + assert user.email_notifications == %{"digest" => false, "notifications" => []} + + Mix.Tasks.Pleroma.User.run([ + "email_notifications", + user.nickname, + "--digest", + "-n", + "mention,pleroma:chat_mention," + ]) + + from_db = User.get_cached_by_nickname(user.nickname) + + assert from_db.email_notifications == %{ + "digest" => true, + "notifications" => ["mention", "pleroma:chat_mention"] + } + + Mix.Tasks.Pleroma.User.run([ + "email_notifications", + user.nickname, + "--no-digest", + "-n", + "off" + ]) + + from_db = User.get_cached_by_nickname(user.nickname) + assert from_db.email_notifications == %{"digest" => false, "notifications" => []} + end + + test "partial update", %{user: user} do + Mix.Tasks.Pleroma.User.run([ + "email_notifications", + user.nickname, + "--digest" + ]) + + from_db = User.get_cached_by_nickname(user.nickname) + assert from_db.email_notifications == %{"digest" => true, "notifications" => []} + + Mix.Tasks.Pleroma.User.run([ + "email_notifications", + user.nickname, + "--no-digest" + ]) + + from_db = User.get_cached_by_nickname(user.nickname) + assert from_db.email_notifications == %{"digest" => false, "notifications" => []} + + Mix.Tasks.Pleroma.User.run([ + "email_notifications", + user.nickname, + "-n", + "mention" + ]) + + from_db = User.get_cached_by_nickname(user.nickname) + assert from_db.email_notifications == %{"digest" => false, "notifications" => ["mention"]} + + Mix.Tasks.Pleroma.User.run([ + "email_notifications", + user.nickname, + "-n", + "off" + ]) + + from_db = User.get_cached_by_nickname(user.nickname) + assert from_db.email_notifications == %{"digest" => false, "notifications" => []} + end + end end |