Remote Timeline: add Streaming support
[akkoma] / test / plugs / user_enabled_plug_test.exs
index af877db76a194e73c3188957161d4d6073d60df5..b219d8abffa35f759470dccedbefbba9ceddb7f6 100644 (file)
@@ -1,8 +1,14 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.Plugs.UserEnabledPlugTest do
   use Pleroma.Web.ConnCase, async: true
 
   alias Pleroma.Plugs.UserEnabledPlug
-  alias Pleroma.User
+  import Pleroma.Factory
+
+  setup do: clear_config([:instance, :account_activation_required])
 
   test "doesn't do anything if the user isn't set", %{conn: conn} do
     ret_conn =
@@ -12,19 +18,37 @@ defmodule Pleroma.Plugs.UserEnabledPlugTest do
     assert ret_conn == conn
   end
 
+  test "with a user that's not confirmed and a config requiring confirmation, it removes that user",
+       %{conn: conn} do
+    Pleroma.Config.put([:instance, :account_activation_required], true)
+
+    user = insert(:user, confirmation_pending: true)
+
+    conn =
+      conn
+      |> assign(:user, user)
+      |> UserEnabledPlug.call(%{})
+
+    assert conn.assigns.user == nil
+  end
+
   test "with a user that is deactivated, it removes that user", %{conn: conn} do
+    user = insert(:user, deactivated: true)
+
     conn =
       conn
-      |> assign(:user, %User{info: %{"deactivated" => true}})
+      |> assign(:user, user)
       |> UserEnabledPlug.call(%{})
 
     assert conn.assigns.user == nil
   end
 
   test "with a user that is not deactivated, it does nothing", %{conn: conn} do
+    user = insert(:user)
+
     conn =
       conn
-      |> assign(:user, %User{})
+      |> assign(:user, user)
 
     ret_conn =
       conn