aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/pleroma/repo/migrations/confirm_logged_in_users_test.exs40
-rw-r--r--test/pleroma/web/plugs/confirm_user_plug_test.exs30
2 files changed, 70 insertions, 0 deletions
diff --git a/test/pleroma/repo/migrations/confirm_logged_in_users_test.exs b/test/pleroma/repo/migrations/confirm_logged_in_users_test.exs
new file mode 100644
index 000000000..f1fd89113
--- /dev/null
+++ b/test/pleroma/repo/migrations/confirm_logged_in_users_test.exs
@@ -0,0 +1,40 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Repo.Migrations.ConfirmLoggedInUsersTest do
+ alias Pleroma.Repo
+ alias Pleroma.User
+ use Pleroma.DataCase, async: true
+ import Ecto.Query
+ import Pleroma.Factory
+ import Pleroma.Tests.Helpers
+
+ setup_all do: require_migration("20201231185546_confirm_logged_in_users")
+
+ test "up/0 confirms unconfirmed but previously-logged-in users", %{migration: migration} do
+ insert_list(25, :oauth_token)
+ Repo.update_all(User, set: [confirmation_pending: true])
+ insert_list(5, :user, confirmation_pending: true)
+
+ count =
+ User
+ |> where(confirmation_pending: true)
+ |> Repo.aggregate(:count)
+
+ assert count == 30
+
+ assert {25, nil} == migration.up()
+
+ count =
+ User
+ |> where(confirmation_pending: true)
+ |> Repo.aggregate(:count)
+
+ assert count == 5
+ end
+
+ test "down/0 does nothing", %{migration: migration} do
+ assert :noop == migration.down()
+ end
+end
diff --git a/test/pleroma/web/plugs/confirm_user_plug_test.exs b/test/pleroma/web/plugs/confirm_user_plug_test.exs
new file mode 100644
index 000000000..43c1c28a9
--- /dev/null
+++ b/test/pleroma/web/plugs/confirm_user_plug_test.exs
@@ -0,0 +1,30 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.Plugs.ConfirmUserPlugTest do
+ use Pleroma.Web.ConnCase, async: true
+ alias Pleroma.User
+ alias Pleroma.Web.Plugs.ConfirmUserPlug
+ import Pleroma.Factory
+
+ test "it confirms an unconfirmed user", %{conn: conn} do
+ %User{id: user_id} = user = insert(:user, confirmation_pending: true)
+
+ conn =
+ conn
+ |> assign(:user, user)
+ |> ConfirmUserPlug.call(%{})
+
+ assert %Plug.Conn{assigns: %{user: %User{id: ^user_id, confirmation_pending: false}}} = conn
+ assert %User{confirmation_pending: false} = User.get_by_id(user_id)
+ end
+
+ test "it does nothing without an unconfirmed user", %{conn: conn} do
+ assert conn == ConfirmUserPlug.call(conn, %{})
+
+ user = insert(:user, confirmation_pending: false)
+ conn = assign(conn, :user, user)
+ assert conn == ConfirmUserPlug.call(conn, %{})
+ end
+end