Tests: fix more tests

This commit is contained in:
Lain Soykaf 2023-12-12 19:08:57 +04:00
parent dca41cc4a3
commit 05352330bb
8 changed files with 81 additions and 12 deletions

View File

@ -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 @@ test "doesn't raise if the pool size is unexpected but the respective flag is se
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 @@ test "warns if welcome email enabled but mail disabled" 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 @@ test "doesn't do anything if account confirmation is disabled" 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

View File

@ -3,9 +3,12 @@
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Emails.MailerTest do
use Pleroma.DataCase
alias Pleroma.Emails.Mailer
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)

View File

@ -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")

View File

@ -991,7 +991,11 @@ test "it requires privileged role :users_manage_credentials", %{conn: conn} 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 @@ test "it requires privileged role :statistics_read", %{conn: conn} 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)

View File

@ -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

View File

@ -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

View File

@ -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 =

View File

@ -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 @@ test "it registers a new user with empty string in bio and returns the user" 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 @@ test "it sends confirmation email if :account_activation_required is specified i
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},