diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/application_requirements_test.exs | 36 | ||||
| -rw-r--r-- | test/user_test.exs | 12 | ||||
| -rw-r--r-- | test/web/admin_api/controllers/admin_api_controller_test.exs | 4 | 
3 files changed, 51 insertions, 1 deletions
| diff --git a/test/application_requirements_test.exs b/test/application_requirements_test.exs index 481cdfd73..fc609d174 100644 --- a/test/application_requirements_test.exs +++ b/test/application_requirements_test.exs @@ -9,6 +9,42 @@ defmodule Pleroma.ApplicationRequirementsTest do    alias Pleroma.Repo +  describe "check_confirmation_accounts!" do +    setup_with_mocks([ +      {Pleroma.ApplicationRequirements, [:passthrough], +       [ +         check_migrations_applied!: fn _ -> :ok end +       ]} +    ]) do +      :ok +    end + +    setup do: clear_config([:instance, :account_activation_required]) + +    test "raises if account confirmation is required but mailer isn't enable" do +      Pleroma.Config.put([:instance, :account_activation_required], true) +      Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], false) + +      assert_raise Pleroma.ApplicationRequirements.VerifyError, +                   "Account activation enabled, but Mailer is disabled. Cannot send confirmation emails.", +                   fn -> +                     capture_log(&Pleroma.ApplicationRequirements.verify!/0) +                   end +    end + +    test "doesn't do anything if account confirmation is disabled" do +      Pleroma.Config.put([:instance, :account_activation_required], false) +      Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], false) +      assert Pleroma.ApplicationRequirements.verify!() == :ok +    end + +    test "doesn't do anything if account confirmation is required and mailer is enabled" do +      Pleroma.Config.put([:instance, :account_activation_required], true) +      Pleroma.Config.put([Pleroma.Emails.Mailer, :enabled], true) +      assert Pleroma.ApplicationRequirements.verify!() == :ok +    end +  end +    describe "check_rum!" do      setup_with_mocks([        {Pleroma.ApplicationRequirements, [:passthrough], diff --git a/test/user_test.exs b/test/user_test.exs index 9788e09d9..21c03b470 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -17,6 +17,7 @@ defmodule Pleroma.UserTest do    import Pleroma.Factory    import ExUnit.CaptureLog +  import Swoosh.TestAssertions    setup_all do      Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end) @@ -385,9 +386,11 @@ defmodule Pleroma.UserTest do        password_confirmation: "test",        email: "email@example.com"      } +      setup do: clear_config([:instance, :autofollowed_nicknames])      setup do: clear_config([:instance, :welcome_message])      setup do: clear_config([:instance, :welcome_user_nickname]) +    setup do: clear_config([:instance, :account_activation_required])      test "it autofollows accounts that are set for it" do        user = insert(:user) @@ -421,7 +424,14 @@ defmodule Pleroma.UserTest do        assert activity.actor == welcome_user.ap_id      end -    setup do: clear_config([:instance, :account_activation_required]) +    test "it sends a confirm email" do +      Pleroma.Config.put([:instance, :account_activation_required], true) + +      cng = User.register_changeset(%User{}, @full_user_data) +      {:ok, registered_user} = User.register(cng) +      ObanHelpers.perform_all() +      assert_email_sent(Pleroma.Emails.UserEmail.account_confirmation_email(registered_user)) +    end      test "it requires an email, name, nickname and password, bio is optional when account_activation_required is enabled" do        Pleroma.Config.put([:instance, :account_activation_required], true) diff --git a/test/web/admin_api/controllers/admin_api_controller_test.exs b/test/web/admin_api/controllers/admin_api_controller_test.exs index da91cd552..6082441ee 100644 --- a/test/web/admin_api/controllers/admin_api_controller_test.exs +++ b/test/web/admin_api/controllers/admin_api_controller_test.exs @@ -9,6 +9,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do    import ExUnit.CaptureLog    import Mock    import Pleroma.Factory +  import Swoosh.TestAssertions    alias Pleroma.Activity    alias Pleroma.Config @@ -1731,6 +1732,9 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do                 "@#{admin.nickname} re-sent confirmation email for users: @#{first_user.nickname}, @#{                   second_user.nickname                 }" + +      ObanHelpers.perform_all() +      assert_email_sent(Pleroma.Emails.UserEmail.account_confirmation_email(first_user))      end    end | 
