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
+24 -33
View File
@@ -57,14 +57,34 @@ defmodule MusicLibrary.ScrobbleActivityTest do
end
end
describe "scrobble_release/3 without session key" do
describe "all scrobble operations without session key" do
setup [:stub_lastfm_success]
test "returns error" do
started_at = DateTime.utc_now()
test "scrobble_release/3 returns :no_session_key" do
assert {:error, :no_session_key} =
ScrobbleActivity.scrobble_release(@release, :started_at, DateTime.utc_now())
end
test "scrobble_medium/4 returns :no_session_key" do
assert {:error, :no_session_key} =
ScrobbleActivity.scrobble_medium(1, @release, :started_at, DateTime.utc_now())
end
test "scrobble_tracks/4 returns :no_session_key" do
track_ids =
@release
|> Release.tracks()
|> Enum.take(1)
|> Enum.map(& &1.id)
|> MapSet.new()
assert {:error, :no_session_key} =
ScrobbleActivity.scrobble_release(@release, :started_at, started_at)
ScrobbleActivity.scrobble_tracks(
track_ids,
@release,
:started_at,
DateTime.utc_now()
)
end
end
@@ -114,17 +134,6 @@ defmodule MusicLibrary.ScrobbleActivityTest do
end
end
describe "scrobble_medium/4 without session key" do
setup [:stub_lastfm_success]
test "returns error" do
started_at = DateTime.utc_now()
assert {:error, :no_session_key} =
ScrobbleActivity.scrobble_medium(1, @release, :started_at, started_at)
end
end
describe "scrobble_tracks/4" do
setup [:store_session_key, :stub_lastfm_success]
@@ -189,24 +198,6 @@ defmodule MusicLibrary.ScrobbleActivityTest do
end
end
describe "scrobble_tracks/4 without session key" do
setup [:stub_lastfm_success]
test "returns error" do
track_ids =
@release
|> Release.tracks()
|> Enum.take(1)
|> Enum.map(& &1.id)
|> MapSet.new()
started_at = DateTime.utc_now()
assert {:error, :no_session_key} =
ScrobbleActivity.scrobble_tracks(track_ids, @release, :started_at, started_at)
end
end
describe "scrobble construction" do
setup [:store_session_key]