Browse Source

[#114] Added tests for "POST /api/account/password_reset".

tags/v0.9.9
Ivan Tashkinov 5 years ago
parent
commit
4e7d98922e
2 changed files with 44 additions and 1 deletions
  1. +2
    -0
      config/test.exs
  2. +42
    -1
      test/web/twitter_api/twitter_api_controller_test.exs

+ 2
- 0
config/test.exs View File

@@ -11,6 +11,8 @@ config :logger, level: :warn

config :pleroma, Pleroma.Uploaders.Local, uploads: "test/uploads"

config :pleroma, Pleroma.Mailer, adapter: Swoosh.Adapters.Test

# Configure your database
config :pleroma, Pleroma.Repo,
adapter: Ecto.Adapters.Postgres,


+ 42
- 1
test/web/twitter_api/twitter_api_controller_test.exs View File

@@ -9,6 +9,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
alias Pleroma.Web.CommonAPI
alias Pleroma.Web.TwitterAPI.TwitterAPI
alias Comeonin.Pbkdf2
alias Ecto.Changeset

import Pleroma.Factory

@@ -270,7 +271,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
since_id = List.last(activities).id

current_user =
Ecto.Changeset.change(current_user, following: [User.ap_followers(user)])
Changeset.change(current_user, following: [User.ap_followers(user)])
|> Repo.update!()

conn =
@@ -832,6 +833,46 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
end
end

describe "POST /api/account/password_reset, with valid parameters" do
setup %{conn: conn} do
user = insert(:user)
conn = post(conn, "/api/account/password_reset?email=#{user.email}")
%{conn: conn, user: user}
end

test "it returns 204", %{conn: conn} do
assert json_response(conn, :no_content)
end

test "it creates a PasswordResetToken record for user", %{user: user} do
token_record = Repo.get_by(Pleroma.PasswordResetToken, user_id: user.id)
assert token_record
end

test "it sends an email to user", %{user: user} do
token_record = Repo.get_by(Pleroma.PasswordResetToken, user_id: user.id)

Swoosh.TestAssertions.assert_email_sent(
Pleroma.UserEmail.password_reset_email(user, token_record.token)
)
end
end

describe "POST /api/account/password_reset, with invalid parameters" do
setup [:valid_user]

test "it returns 500 when user is not found", %{conn: conn, user: user} do
conn = post(conn, "/api/account/password_reset?email=nonexisting_#{user.email}")
assert json_response(conn, :internal_server_error)
end

test "it returns 500 when user is not local", %{conn: conn, user: user} do
{:ok, user} = Repo.update(Changeset.change(user, local: false))
conn = post(conn, "/api/account/password_reset?email=#{user.email}")
assert json_response(conn, :internal_server_error)
end
end

describe "GET /api/externalprofile/show" do
test "it returns the user", %{conn: conn} do
user = insert(:user)


Loading…
Cancel
Save