Files
Flaro/Packages/FlixyKit/Tests/FlixyDownloadsTests/TransferHoldTests.swift
T
ScarriffleandClaude Opus 5 bbe47b83be Live-TV: das Programm kam nie an, und die Einschalt-Adresse wurde weggeworfen
Drei Fehler, alle im eigenen Code.

Die Sendezeiten stehen beim Programmanbieter im Medien-Block, nicht am
Eintrag darüber. Ich habe sie oben gesucht, nicht gefunden und jede
Sendung verworfen — übrig blieb „Kein Programm verfügbar" auf jedem
Sender, und ohne Sendungen fiel auch die Senderliste auf die Tunerliste
zurück.

Die Senderspalte im Raster fehlte ganz. Die Zeitachse ist mehrere tausend
Punkte breit, und der HStack hat den Nachbarn dafür auf null gedrückt.
Jetzt hat die Spalte Vorrang, und die Achse liegt als Auflage über einer
durchsichtigen Fläche — eine Auflage zählt bei der Größenrechnung nicht
mit. Der Abstand der Achsenbeschriftung gehört in die Spaltenbreite
hinein statt daneben, sonst steht die ganze Achse acht Punkte neben dem
Programm darunter.

Und das Einschalten: die Adresse wurde berechnet und verworfen, dann
bekam der Player eine Senderkennung, zu der er einen Film in der
Mediathek suchte. Den gibt es nicht. Jetzt reicht die Anfrage die fertige
Adresse durch, der Player spielt sie ohne Umweg, und meldet weder
Fortschritt noch sucht er Metadaten. Scheitert es doch, steht ab jetzt
eine Meldung da statt gar nichts.

Geprüft wurde das Raster diesmal mit den Augen: ein Gerüst im Simulator
zeichnet es mit erfundenen Sendern. Dafür bekommt es die Bildadresse als
Abschluss übergeben, statt sie aus der Sitzung zu lesen.

Dazu: Downloads zeigen jetzt an, wenn sie auf WLAN warten. Die
Hintergrund-Sitzung wartet in dem Fall von sich aus — kein Fehler, nur
Stillstand, und das sah bisher aus wie ein hängender Download.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 13:34:48 +02:00

46 lines
1.4 KiB
Swift

import Testing
@testable import FlixyDownloads
/// Warum gerade nichts übertragen wird.
@Suite("Übertragungssperre")
struct TransferHoldTests {
@Test("Mobilfunk hält auf, solange nur WLAN erlaubt ist")
func cellularHolds() {
#expect(
TransferHold.current(isWiFiOnly: true, isReachable: true, isExpensive: true)
== .waitingForWiFi
)
}
@Test("Im WLAN läuft es")
func wifiRuns() {
#expect(
TransferHold.current(isWiFiOnly: true, isReachable: true, isExpensive: false)
== .none
)
}
@Test("Ohne den WLAN-Zwang hält Mobilfunk nicht auf")
func cellularAllowed() {
#expect(
TransferHold.current(isWiFiOnly: false, isReachable: true, isExpensive: true)
== .none
)
}
@Test("Ohne Verbindung hilft auch ein ausgeschalteter Zwang nichts")
func offlineWins() {
// Sonst hieße es „wartet auf WLAN", während schlicht gar nichts geht —
// und der Betrachter sucht den Fehler an der falschen Stelle.
#expect(
TransferHold.current(isWiFiOnly: false, isReachable: false, isExpensive: false)
== .offline
)
#expect(
TransferHold.current(isWiFiOnly: true, isReachable: false, isExpensive: true)
== .offline
)
}
}