mirror of
https://github.com/navidrome/navidrome.git
synced 2026-08-01 07:21:17 +00:00
test(artwork): make the artists-first backfill assertion non-vacuous
The follow-up loop could never fail: once the first "ar" index is asserted to be 0, every non-"ar" element is necessarily at an index greater than 0. A sequence like ["ar", "al", "ar"] passed both assertions, which is exactly the interleaving the check exists to forbid. Assert the partition directly instead: nothing after the first non-artist call may be an artist. Verified by mutation — enqueueing artists a second time after albums now fails the spec.
This commit is contained in:
parent
02fcf8bea7
commit
13659f2c30
@ -2,6 +2,7 @@ package artwork
|
||||
|
||||
import (
|
||||
"context"
|
||||
"slices"
|
||||
"time"
|
||||
|
||||
"github.com/navidrome/navidrome/conf"
|
||||
@ -175,18 +176,11 @@ var _ = Describe("Housekeeping", func() {
|
||||
Expect(did).To(BeTrue())
|
||||
|
||||
Expect(queueRepo.callKinds).ToNot(BeEmpty())
|
||||
artistCallIdx := -1
|
||||
for i, k := range queueRepo.callKinds {
|
||||
if k == "ar" {
|
||||
artistCallIdx = i
|
||||
break
|
||||
}
|
||||
}
|
||||
Expect(artistCallIdx).To(Equal(0), "artists must be the first Enqueue call")
|
||||
for i, k := range queueRepo.callKinds {
|
||||
if k != "ar" {
|
||||
Expect(i).To(BeNumerically(">", artistCallIdx))
|
||||
}
|
||||
firstOther := slices.IndexFunc(queueRepo.callKinds, func(k string) bool { return k != "ar" })
|
||||
Expect(firstOther).ToNot(Equal(0), "artists must be the first Enqueue call")
|
||||
if firstOther >= 0 {
|
||||
Expect(queueRepo.callKinds[firstOther:]).ToNot(ContainElement("ar"),
|
||||
"no artist Enqueue may follow another kind")
|
||||
}
|
||||
|
||||
for _, it := range queueRepo.Data {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user