Can print an individual medium tracklist

This commit is contained in:
Claudio Ortolina
2026-03-09 14:52:26 +00:00
parent 4c6baa6e13
commit c352ad4809
3 changed files with 97 additions and 18 deletions
@@ -80,6 +80,28 @@ defmodule MusicLibrary.Records.TracklistPdfTest do
end
end
describe "generate_medium/3" do
test "generates PDF for a single medium from a multi-disc release" do
record = build_record(%{title: "Marbles", artists: [%{name: "Marillion"}]})
api_response = MusicBrainz.Fixtures.Release.release_with_media(:marbles)
release = Release.from_api_response(api_response)
assert {:ok, <<@pdf_magic_bytes, _::binary>>} =
TracklistPdf.generate_medium(record, release, 1)
end
test "returns error for non-existent medium number" do
record = build_record(%{title: "Test Album", artists: [%{name: "Test Artist"}]})
release =
build_release([
build_medium(1, [build_track(1, "Track One", 200_000)])
])
assert {:error, :medium_not_found} = TracklistPdf.generate_medium(record, release, 99)
end
end
describe "layout_params/2" do
test "single column for small track count" do
assert {1, 8, true} = TracklistPdf.layout_params(10, 1)