mirror of
https://github.com/navidrome/navidrome.git
synced 2026-08-31 07:30:32 +00:00
test: add e2e test matching reporter's exact library layout (#5456)
Adds a deeply nested test (Genre/Artist/Album/Disc) with 12 discs using the reporter's actual folder names to verify artwork resolution works for non-top-level album folders too.
This commit is contained in:
parent
afe5ea77d5
commit
8cd6b4b84d
@ -257,6 +257,61 @@ var _ = Describe("Disc artwork resolution", func() {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// Reproduces https://github.com/navidrome/navidrome/issues/5456
|
// Reproduces https://github.com/navidrome/navidrome/issues/5456
|
||||||
|
// Deeply nested layout matching the reporter's actual structure.
|
||||||
|
When("a deeply nested multi-disc album has cover.jpg and per-disc folder.jpg", func() {
|
||||||
|
// Genre/Artist/Album/ ← album root with cover.jpg
|
||||||
|
// ├── cover.jpg ← album-level cover
|
||||||
|
// ├── Disc 01 (Subtitle)/
|
||||||
|
// │ ├── 01 - Track.mp3
|
||||||
|
// │ └── folder.jpg ← disc 1 art
|
||||||
|
// ├── Disc 02 (Subtitle)/
|
||||||
|
// │ ├── 01 - Track.mp3
|
||||||
|
// │ └── folder.jpg
|
||||||
|
// └── ... (12 discs)
|
||||||
|
It("uses album-root cover.jpg for album art and per-disc folder.jpg for each disc", func() {
|
||||||
|
conf.Server.DiscArtPriority = defaultDiscPriority
|
||||||
|
conf.Server.CoverArtPriority = defaultCoverPriority
|
||||||
|
discNames := []string{
|
||||||
|
"Disc 01 (Birth of the Dead - The Studio Sides)",
|
||||||
|
"Disc 02 (Birth of the Dead - The Live Sides)",
|
||||||
|
"Disc 03 (The Grateful Dead)",
|
||||||
|
"Disc 04 (Anthem of the Sun)",
|
||||||
|
"Disc 05 (Aoxomoxoa)",
|
||||||
|
"Disc 06 (Live; Dead)",
|
||||||
|
"Disc 07 (Workingman's Dead)",
|
||||||
|
"Disc 08 (American Beauty)",
|
||||||
|
"Disc 09 (Grateful Dead)",
|
||||||
|
"Disc 10 (Europe '72)",
|
||||||
|
"Disc 11 (Europe '72)",
|
||||||
|
"Disc 12 (History of the Grateful Dead, Volume One (Bear's Choice))",
|
||||||
|
}
|
||||||
|
layout := fstest.MapFS{
|
||||||
|
"Pop; Rock/Grateful Dead/(2001) The Golden Road/cover.jpg": imageFile("album-root-cover"),
|
||||||
|
}
|
||||||
|
for i, name := range discNames {
|
||||||
|
discNum := i + 1
|
||||||
|
prefix := fmt.Sprintf("Pop; Rock/Grateful Dead/(2001) The Golden Road/%s/", name)
|
||||||
|
layout[prefix+"01 - Track.mp3"] = trackFile(1, fmt.Sprintf("T%d", discNum), map[string]any{"disc": fmt.Sprintf("%d", discNum)})
|
||||||
|
layout[prefix+"folder.jpg"] = imageFile(fmt.Sprintf("disc-%02d-folder", discNum))
|
||||||
|
}
|
||||||
|
setLayout(layout)
|
||||||
|
scan()
|
||||||
|
|
||||||
|
al := firstAlbum()
|
||||||
|
|
||||||
|
Expect(readArtwork(al.CoverArtID())).To(Equal(imageBytes("album-root-cover")))
|
||||||
|
|
||||||
|
for i := range discNames {
|
||||||
|
discNum := i + 1
|
||||||
|
discID := model.NewArtworkID(model.KindDiscArtwork, model.DiscArtworkID(al.ID, discNum), &al.UpdatedAt)
|
||||||
|
Expect(readArtwork(discID)).To(Equal(imageBytes(fmt.Sprintf("disc-%02d-folder", discNum))),
|
||||||
|
"disc %d should use its own folder.jpg", discNum)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
// https://github.com/navidrome/navidrome/issues/5456
|
||||||
|
// Top-level album variant — album folder at library root (Path=".").
|
||||||
When("a top-level multi-disc album has cover.jpg and per-disc folder.jpg", func() {
|
When("a top-level multi-disc album has cover.jpg and per-disc folder.jpg", func() {
|
||||||
// Album/ (top-level, Path=".")
|
// Album/ (top-level, Path=".")
|
||||||
// ├── cover.jpg ← album-level cover
|
// ├── cover.jpg ← album-level cover
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user