Files
Flaro/Packages/FlixyKit/Tests/PlexKitTests/HubShapeTests.swift
T
GuidoandClaude Opus 5 53dacc9f1d Plakate hochkant, Weiterschauen im Querformat
Alle Reihen zeigten Querformat-Kacheln. Für „Weiterschauen" ist das
richtig — man erkennt die Szene wieder, an der man aufgehört hat. Beim
Aussuchen sucht man dagegen nach Plakaten, und die sind hochkant.

Die Unterscheidung hängt an der Hub-Kennung, nicht am Titel: der kommt
in der Sprache des Servers, und die Startseite sähe sonst auf Englisch
anders aus als auf Deutsch, ohne dass jemand auf die Ursache käme.
`ondeck` zählt mit — ältere Serverfassungen nennen es so.

Bei Folgen in Hochkant-Reihen wird das Serienplakat genommen, nicht das
Szenenbild: ein 16:9-Bild hochkant beschnitten zeigt einen zufälligen
Ausschnitt und ist zum Wiedererkennen wertlos.

Plakate sind schmaler als Szenenbilder, damit bei gleicher Höhe mehr
nebeneinander passen — mehr Auswahl auf einen Blick ist der Zweck.

Vier Tests, darunter einer, der festhält, dass der übersetzte Titel die
Form nicht bestimmen darf.

149 Tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 22:44:13 +02:00

48 lines
1.9 KiB
Swift

import Foundation
import Testing
@testable import PlexKit
/// Welche Reihe welche Kachelform bekommt.
///
/// Weiterschauen lebt vom Szenenbild — man erkennt die Stelle wieder, an der
/// man aufgehört hat. Überall sonst ist das Plakat richtig, denn danach sucht
/// man einen Film aus.
@Suite("Form der Reihen")
struct HubShapeTests {
@Test(
"Angefangenes wird als Szenenbild gezeigt",
arguments: ["home.continue", "continueWatching", "tv.ondeck", "home.ondeck"]
)
func continueWatchingUsesLandscape(identifier: String) {
#expect(PlexHub(hubIdentifier: identifier, title: "Weiterschauen").isContinueWatching)
}
@Test(
"Alles andere bekommt Plakate",
arguments: ["home.movies.recent", "movie.recentlyadded", "home.watchlist",
"movie.collection", "tv.recentlyaired"]
)
func everythingElseUsesPosters(identifier: String) {
#expect(!PlexHub(hubIdentifier: identifier, title: "Irgendeine Reihe").isContinueWatching)
}
@Test("Die Entscheidung hängt nicht am übersetzten Titel")
func titleDoesNotDecide() {
// Der Titel kommt in der Sprache des Servers. Würde er die Form
// bestimmen, sähe die Startseite auf Englisch anders aus als auf
// Deutsch — und niemand käme auf die Ursache.
let english = PlexHub(hubIdentifier: "home.continue", title: "Continue Watching")
let german = PlexHub(hubIdentifier: "home.continue", title: "Weiterschauen")
#expect(english.isContinueWatching == german.isContinueWatching)
let misleading = PlexHub(hubIdentifier: "home.movies.recent", title: "Weiterschauen")
#expect(!misleading.isContinueWatching)
}
@Test("Groß- und Kleinschreibung spielt keine Rolle")
func caseInsensitive() {
#expect(PlexHub(hubIdentifier: "Home.ContinueWatching", title: "x").isContinueWatching)
}
}