aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/pleroma/user/email_list_test.exs26
-rw-r--r--test/pleroma/web/admin_api/controllers/email_list_controller_test.exs45
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