feat: show skip offer countdown and transitions

This commit is contained in:
2026-10-22 14:09:53 +02:00
parent 70672321a1
commit 53369424e6
13 changed files with 453 additions and 40 deletions
+13
View File
@@ -105,6 +105,19 @@ struct PlaybackQueueChecks {
"replace discards previous queue and starts new selection")
queue.replace([])
require(queue.items.isEmpty && queue.currentID == nil, "empty replacement clears queue")
let youtube = URL(string: "https://www.youtube.com/watch?v=AAAAAAAAAAA")!
let miruro = URL(string: "https://barelystarted.miruro.tv/watch/fixture/episode?ep=2")!
queue.replaceStreams([(url: miruro, label: "Episode 2"), (url: youtube, label: "YouTube")])
require(queue.items.map(\.url) == [miruro, youtube], "stream order is preserved without file filtering or sorting")
require(queue.currentItem?.displayName == "Episode 2", "stream rows have descriptive labels")
let streamID = queue.currentID!
queue.updateCurrentLabel("Resolved episode title")
require(queue.currentID == streamID && queue.currentItem?.displayName == "Resolved episode title",
"metadata updates labels without changing queue identity")
require(queue.advance(1) == youtube && queue.advance(-1) == miruro, "stream navigation uses supplied order")
queue.move(fromOffsets: IndexSet(integer: 0), toOffset: 2)
require(queue.currentID == streamID && queue.items.map(\.url) == [youtube, miruro], "stream reorder preserves selection")
require(queue.remove(streamID) == nil && queue.items.map(\.url) == [youtube], "removing current final stream stops")
print("playback queue checks passed")
}
}