Skip to content

Commit 45c43ad

Browse files
committed
add auth_controller tests
1 parent dd5239f commit 45c43ad

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

test/plausible_web/controllers/auth_controller_test.exs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,55 @@ defmodule PlausibleWeb.AuthControllerTest do
444444
end
445445
end
446446

447+
describe "POST /login failed attempt logs" do
448+
import ExUnit.CaptureLog
449+
450+
setup do
451+
patch_env(:log_failed_login_attempts, true)
452+
end
453+
454+
test "on missing user", %{conn: conn} do
455+
logs =
456+
capture_log(fn ->
457+
post(conn, "/login", email: "user@example.com", password: "password")
458+
end)
459+
460+
assert logs =~ "[warning] [login] user not found for user@example.com"
461+
end
462+
463+
test "on wrong password", %{conn: conn} do
464+
user = insert(:user, password: "password")
465+
466+
logs =
467+
capture_log(fn ->
468+
post(conn, "/login", email: user.email, password: "wrong")
469+
end)
470+
471+
assert logs =~ "[warning] [login] wrong password for #{user.email}"
472+
end
473+
474+
test "on too many login attempts", %{conn: conn} do
475+
user = insert(:user, password: "password")
476+
477+
capture_log(fn ->
478+
for _ <- 1..5 do
479+
build_conn()
480+
|> put_req_header("x-forwarded-for", "1.1.1.1")
481+
|> post("/login", email: user.email, password: "wrong")
482+
end
483+
end)
484+
485+
logs =
486+
capture_log(fn ->
487+
conn
488+
|> put_req_header("x-forwarded-for", "1.1.1.1")
489+
|> post("/login", email: user.email, password: "wrong")
490+
end)
491+
492+
assert logs =~ "[warning] [login] too many logging attempts for #{user.email}"
493+
end
494+
end
495+
447496
describe "GET /password/request-reset" do
448497
test "renders the form", %{conn: conn} do
449498
conn = get(conn, "/password/request-reset")

0 commit comments

Comments
 (0)