Improve tests: better assertions, meaningful tests

Track resulting principles in project conventions
This commit is contained in:
Claudio Ortolina
2026-03-27 15:46:31 +00:00
parent 6e96bd019f
commit 96836ae715
19 changed files with 91 additions and 140 deletions
@@ -12,15 +12,23 @@ defmodule MusicLibraryWeb.CollectionControllerTest do
|> Keyword.fetch!(:api_token)
end
describe "authentication" do
test "all API endpoints require a bearer token", %{conn: conn} do
for path <- [
~p"/api/collection/latest",
~p"/api/collection/random",
~p"/api/collection",
~p"/api/collection/on_this_day"
] do
assert get(conn, path).status == 401,
"expected 401 for unauthenticated GET #{path}"
end
end
end
describe "GET /api/collection/latest" do
setup [:create_record]
test "requires authentication", %{conn: conn} do
conn = get(conn, ~p"/api/collection/latest")
assert conn.status == 401
end
test "returns the latest record", %{conn: conn, record: record} do
conn =
conn
@@ -34,12 +42,6 @@ defmodule MusicLibraryWeb.CollectionControllerTest do
describe "GET /api/collection/random" do
setup [:create_record]
test "requires authentication", %{conn: conn} do
conn = get(conn, ~p"/api/collection/random")
assert conn.status == 401
end
# We're not testing random here - the query is solid enough
test "returns a random record", %{conn: conn, record: record} do
conn =
@@ -54,12 +56,6 @@ defmodule MusicLibraryWeb.CollectionControllerTest do
describe "GET /api/collection" do
setup [:create_record]
test "requires authentication", %{conn: conn} do
conn = get(conn, ~p"/api/collection")
assert conn.status == 401
end
test "returns a paginated list of records", %{conn: conn, record: record} do
conn =
conn
@@ -78,12 +74,6 @@ defmodule MusicLibraryWeb.CollectionControllerTest do
describe "GET /api/collection/on_this_day" do
setup [:create_record]
test "requires authentication", %{conn: conn} do
conn = get(conn, ~p"/api/collection/on_this_day")
assert conn.status == 401
end
test "returns a list of records", %{conn: conn, record: record} do
conn =
conn