27 lines
615 B
Elixir
27 lines
615 B
Elixir
|
|
defmodule BerrypodWeb.Plugs.BrokenUrlTrackerTest do
|
||
|
|
use BerrypodWeb.ConnCase, async: true
|
||
|
|
|
||
|
|
alias Berrypod.Redirects
|
||
|
|
|
||
|
|
setup do
|
||
|
|
Redirects.create_table()
|
||
|
|
:ok
|
||
|
|
end
|
||
|
|
|
||
|
|
test "records broken URL on 404", %{conn: conn} do
|
||
|
|
conn = get(conn, "/zz-nonexistent-path")
|
||
|
|
|
||
|
|
assert conn.status in [404, 500]
|
||
|
|
|
||
|
|
[broken_url] = Redirects.list_broken_urls()
|
||
|
|
assert broken_url.path == "/zz-nonexistent-path"
|
||
|
|
assert broken_url.recent_404_count == 1
|
||
|
|
end
|
||
|
|
|
||
|
|
test "skips static asset paths", %{conn: conn} do
|
||
|
|
get(conn, "/assets/missing-file.js")
|
||
|
|
|
||
|
|
assert Redirects.list_broken_urls() == []
|
||
|
|
end
|
||
|
|
end
|