logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://hacktivis.me/git/pleroma.git
commit: 05352330bb536a13dee6df20c2d0b3fa75dbd50e
parent dca41cc4a37999a6971b70ef5e0996e528b79bf5
Author: Lain Soykaf <lain@lain.com>
Date:   Tue, 12 Dec 2023 19:08:57 +0400

Tests: fix more tests

Diffstat:

Mtest/pleroma/application_requirements_test.exs21++++++++++++++++++---
Mtest/pleroma/emails/mailer_test.exs21++++++++++++++++++---
Mtest/pleroma/user/welcome_email_test.exs5+++++
Mtest/pleroma/web/admin_api/controllers/admin_api_controller_test.exs6+++++-
Mtest/pleroma/web/admin_api/controllers/invite_controller_test.exs5+++++
Mtest/pleroma/web/pleroma_api/controllers/account_controller_test.exs14++++++++++++--
Mtest/pleroma/web/twitter_api/password_controller_test.exs6++++++
Mtest/pleroma/web/twitter_api/twitter_api_test.exs13+++++++++++--
8 files changed, 80 insertions(+), 11 deletions(-)

diff --git a/test/pleroma/application_requirements_test.exs b/test/pleroma/application_requirements_test.exs @@ -7,9 +7,11 @@ defmodule Pleroma.ApplicationRequirementsTest do import ExUnit.CaptureLog import Mock + import Mox alias Pleroma.ApplicationRequirements alias Pleroma.Repo + alias Pleroma.UnstubbedConfigMock, as: ConfigMock describe "check_repo_pool_size!/1" do test "raises if the pool size is unexpected" do @@ -37,7 +39,11 @@ defmodule Pleroma.ApplicationRequirementsTest do test "warns if welcome email enabled but mail disabled" do clear_config([:welcome, :email, :enabled], true) - clear_config([Pleroma.Emails.Mailer, :enabled], false) + + ConfigMock + |> stub(:get, fn + [Pleroma.Emails.Mailer, :enabled] -> false + end) assert capture_log(fn -> assert Pleroma.ApplicationRequirements.verify!() == :ok @@ -59,7 +65,11 @@ defmodule Pleroma.ApplicationRequirementsTest do test "warns if account confirmation is required but mailer isn't enabled" do clear_config([:instance, :account_activation_required], true) - clear_config([Pleroma.Emails.Mailer, :enabled], false) + + ConfigMock + |> stub(:get, fn + [Pleroma.Emails.Mailer, :enabled] -> false + end) assert capture_log(fn -> assert Pleroma.ApplicationRequirements.verify!() == :ok @@ -74,7 +84,12 @@ defmodule Pleroma.ApplicationRequirementsTest do test "doesn't do anything if account confirmation is required and mailer is enabled" do clear_config([:instance, :account_activation_required], true) - clear_config([Pleroma.Emails.Mailer, :enabled], true) + + ConfigMock + |> stub(:get, fn + [Pleroma.Emails.Mailer, :enabled] -> true + end) + assert Pleroma.ApplicationRequirements.verify!() == :ok end end diff --git a/test/pleroma/emails/mailer_test.exs b/test/pleroma/emails/mailer_test.exs @@ -3,9 +3,12 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Emails.MailerTest do - use Pleroma.DataCase + use Pleroma.DataCase, async: true + alias Pleroma.Emails.Mailer + alias Pleroma.UnstubbedConfigMock, as: ConfigMock + import Mox import Swoosh.TestAssertions @email %Swoosh.Email{ @@ -14,10 +17,22 @@ defmodule Pleroma.Emails.MailerTest do subject: "Pleroma test email", to: [{"Test User", "user1@example.com"}] } - setup do: clear_config([Pleroma.Emails.Mailer, :enabled], true) + + setup do + ConfigMock + |> stub(:get, fn + [Mailer, :enabled] -> true + end) + + :ok + end test "not send email when mailer is disabled" do - clear_config([Pleroma.Emails.Mailer, :enabled], false) + ConfigMock + |> stub(:get, fn + [Mailer, :enabled] -> false + end) + Mailer.deliver(@email) :timer.sleep(100) diff --git a/test/pleroma/user/welcome_email_test.exs b/test/pleroma/user/welcome_email_test.exs @@ -14,6 +14,11 @@ defmodule Pleroma.User.WelcomeEmailTest do setup do: clear_config([:welcome]) + setup do + Mox.stub_with(Pleroma.UnstubbedConfigMock, Pleroma.Test.StaticConfig) + :ok + end + describe "send_email/1" do test "send a welcome email" do user = insert(:user, name: "Jimm") diff --git a/test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs b/test/pleroma/web/admin_api/controllers/admin_api_controller_test.exs @@ -991,7 +991,11 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do describe "PATCH /resend_confirmation_email" do test "it resend emails for two users", %{conn: conn, admin: admin} do + ConfigMock + |> Mox.stub_with(Pleroma.Test.StaticConfig) + clear_config([:instance, :admin_privileges], [:users_manage_credentials]) + [first_user, second_user] = insert_pair(:user, is_confirmed: false) ret_conn = @@ -1079,7 +1083,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do describe "/api/pleroma/backups" do test "it creates a backup", %{conn: conn} do ConfigMock - |> Mox.stub_with(Pleroma.Config) + |> Mox.stub_with(Pleroma.Test.StaticConfig) admin = %{id: admin_id, nickname: admin_nickname} = insert(:user, is_admin: true) token = insert(:oauth_admin_token, user: admin) diff --git a/test/pleroma/web/admin_api/controllers/invite_controller_test.exs b/test/pleroma/web/admin_api/controllers/invite_controller_test.exs @@ -5,9 +5,11 @@ defmodule Pleroma.Web.AdminAPI.InviteControllerTest do use Pleroma.Web.ConnCase, async: false + import Mox import Pleroma.Factory alias Pleroma.Repo + alias Pleroma.UnstubbedConfigMock, as: ConfigMock alias Pleroma.UserInviteToken setup do @@ -19,6 +21,9 @@ defmodule Pleroma.Web.AdminAPI.InviteControllerTest do |> assign(:user, admin) |> assign(:token, token) + ConfigMock + |> stub_with(Pleroma.Test.StaticConfig) + {:ok, %{admin: admin, token: token, conn: conn}} end diff --git a/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs b/test/pleroma/web/pleroma_api/controllers/account_controller_test.exs @@ -5,11 +5,13 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do use Pleroma.Web.ConnCase - alias Pleroma.Config + alias Pleroma.Test.StaticConfig, as: Config alias Pleroma.Tests.ObanHelpers + alias Pleroma.UnstubbedConfigMock, as: ConfigMock alias Pleroma.User alias Pleroma.Web.CommonAPI + import Mox import Pleroma.Factory import Swoosh.TestAssertions @@ -25,7 +27,15 @@ defmodule Pleroma.Web.PleromaAPI.AccountControllerTest do [user: user] end - setup do: clear_config([:instance, :account_activation_required], true) + setup do + ConfigMock + |> stub(:get, fn + [:instance, :account_activation_required] -> true + path -> Config.get(path) + end) + + :ok + end test "resend account confirmation email", %{conn: conn, user: user} do conn diff --git a/test/pleroma/web/twitter_api/password_controller_test.exs b/test/pleroma/web/twitter_api/password_controller_test.exs @@ -11,9 +11,15 @@ defmodule Pleroma.Web.TwitterAPI.PasswordControllerTest do alias Pleroma.Tests.ObanHelpers alias Pleroma.User alias Pleroma.Web.OAuth.Token + import Pleroma.Factory import Swoosh.TestAssertions + setup do + Mox.stub_with(Pleroma.UnstubbedConfigMock, Pleroma.Test.StaticConfig) + :ok + end + describe "GET /api/pleroma/password_reset/token" do test "it returns error when token invalid", %{conn: conn} do response = diff --git a/test/pleroma/web/twitter_api/twitter_api_test.exs b/test/pleroma/web/twitter_api/twitter_api_test.exs @@ -16,6 +16,11 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do :ok end + setup do + Mox.stub_with(Pleroma.UnstubbedConfigMock, Pleroma.Test.StaticConfig) + :ok + end + test "it registers a new user and returns the user." do data = %{ :username => "lain", @@ -48,6 +53,10 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do test "it sends confirmation email if :account_activation_required is specified in instance config" do clear_config([:instance, :account_activation_required], true) + Pleroma.UnstubbedConfigMock + |> Mox.expect(:get, fn [:instance, :account_activation_required] -> true end) + |> Mox.expect(:get, fn [Pleroma.Emails.Mailer, :enabled] -> true end) + data = %{ :username => "lain", :email => "lain@wired.jp", @@ -64,8 +73,8 @@ defmodule Pleroma.Web.TwitterAPI.TwitterAPITest do email = Pleroma.Emails.UserEmail.account_confirmation_email(user) - notify_email = Pleroma.Config.get([:instance, :notify_email]) - instance_name = Pleroma.Config.get([:instance, :name]) + notify_email = Pleroma.Test.StaticConfig.get([:instance, :notify_email]) + instance_name = Pleroma.Test.StaticConfig.get([:instance, :name]) Swoosh.TestAssertions.assert_email_sent( from: {instance_name, notify_email},