Merge branch 'develop' into fix/csp-for-captcha
[akkoma] / test / web / mastodon_api / controllers / auth_controller_test.exs
index 5a4d203f4aed43468647956fb4063495d9a6d949..a485f8e417c981551b75529eac40a468c0ec6f8d 100644 (file)
@@ -85,6 +85,37 @@ defmodule Pleroma.Web.MastodonAPI.AuthControllerTest do
     end
   end
 
+  describe "POST /auth/password, with nickname" do
+    test "it returns 204", %{conn: conn} do
+      user = insert(:user)
+
+      assert conn
+             |> post("/auth/password?nickname=#{user.nickname}")
+             |> json_response(:no_content)
+
+      ObanHelpers.perform_all()
+      token_record = Repo.get_by(Pleroma.PasswordResetToken, user_id: user.id)
+
+      email = Pleroma.Emails.UserEmail.password_reset_email(user, token_record.token)
+      notify_email = Config.get([:instance, :notify_email])
+      instance_name = Config.get([:instance, :name])
+
+      assert_email_sent(
+        from: {instance_name, notify_email},
+        to: {user.name, user.email},
+        html_body: email.html_body
+      )
+    end
+
+    test "it doesn't fail when a user has no email", %{conn: conn} do
+      user = insert(:user, %{email: nil})
+
+      assert conn
+             |> post("/auth/password?nickname=#{user.nickname}")
+             |> json_response(:no_content)
+    end
+  end
+
   describe "POST /auth/password, with invalid parameters" do
     setup do
       user = insert(:user)