diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/pleroma/user/email_list_test.exs | 26 | ||||
-rw-r--r-- | test/pleroma/web/admin_api/controllers/email_list_controller_test.exs | 45 |
2 files changed, 66 insertions, 5 deletions
diff --git a/test/pleroma/user/email_list_test.exs b/test/pleroma/user/email_list_test.exs index fb6f447d2..3522bc4fb 100644 --- a/test/pleroma/user/email_list_test.exs +++ b/test/pleroma/user/email_list_test.exs @@ -9,10 +9,11 @@ defmodule Pleroma.User.EmailListTest do import Pleroma.Factory - test "generate_csv/0" do - user1 = insert(:user) - user2 = insert(:user) - user3 = insert(:user) + test "generate_csv/1 with :subscribers" do + user1 = insert(:user, accepts_email_list: true) + user2 = insert(:user, accepts_email_list: true) + user3 = insert(:user, accepts_email_list: true) + insert(:user, accepts_email_list: false) expected = """ Email Address\r @@ -21,6 +22,21 @@ defmodule Pleroma.User.EmailListTest do #{user3.email}\r """ - assert EmailList.generate_csv() == expected + assert EmailList.generate_csv(:subscribers) == expected + end + + test "generate_csv/1 with :unsubscribers" do + user1 = insert(:user, accepts_email_list: false) + user2 = insert(:user, accepts_email_list: false) + insert(:user, accepts_email_list: true) + insert(:user, accepts_email_list: true) + + expected = """ + Email Address\r + #{user1.email}\r + #{user2.email}\r + """ + + assert EmailList.generate_csv(:unsubscribers) == expected end end diff --git a/test/pleroma/web/admin_api/controllers/email_list_controller_test.exs b/test/pleroma/web/admin_api/controllers/email_list_controller_test.exs index 9fcd63a07..4a9f52812 100644 --- a/test/pleroma/web/admin_api/controllers/email_list_controller_test.exs +++ b/test/pleroma/web/admin_api/controllers/email_list_controller_test.exs @@ -19,6 +19,18 @@ defmodule Pleroma.Web.AdminAPI.EmailListControllerTest do {:ok, %{admin: admin, token: token, conn: conn}} end + defp user_setup do + user = insert(:user) + token = insert(:oauth_token, user: user) + + conn = + build_conn() + |> assign(:user, user) + |> assign(:token, token) + + {:ok, %{user: user, token: token, conn: conn}} + end + describe "GET /api/v1/pleroma/admin/email_list/subscribers.csv" do setup do: admin_setup() @@ -31,4 +43,37 @@ defmodule Pleroma.Web.AdminAPI.EmailListControllerTest do assert result end end + + describe "GET /api/v1/pleroma/admin/email_list/subscribers.csv unauthorized" do + setup do: user_setup() + + test "returns 403", %{conn: conn} do + conn + |> get("/api/v1/pleroma/admin/email_list/subscribers.csv") + |> response(403) + end + end + + describe "GET /api/v1/pleroma/admin/email_list/unsubscribers.csv" do + setup do: admin_setup() + + test "returns a CSV", %{conn: conn} do + result = + conn + |> get("/api/v1/pleroma/admin/email_list/unsubscribers.csv") + |> response(200) + + assert result + end + end + + describe "GET /api/v1/pleroma/admin/email_list/unsubscribers.csv unauthorized" do + setup do: user_setup() + + test "returns 403", %{conn: conn} do + conn + |> get("/api/v1/pleroma/admin/email_list/unsubscribers.csv") + |> response(403) + end + end end |