mana-swift-ui/Tests/ManaWebShellTests/WebTargetTests.swift
Till JS 3aa90762cc ManaWebShell: Retry-Button in der Fehler-Leiste
Ein WebView-Lade-Fehler war bisher eine Sackgasse — Meldung sichtbar,
aber kein Weg zum Neuladen. Jetzt: "Erneut laden"-Button erhöht einen
internen reloadNudge, der in effectiveTarget.reloadToken einfließt →
updateUIView/updateNSView lädt die URL neu. WebTargetTests sichern die
Token-Ungleichheit ab (4/4 grün via swift test).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 14:04:02 +02:00

38 lines
1.3 KiB
Swift

import Foundation
import Testing
@testable import ManaWebShell
/// `WebShellView.updateUIView`/`updateNSView` lädt nur neu, wenn
/// `lastTarget != target`. Der Erneut laden"-Button erhöht den
/// `reloadToken` diese Tests sichern, dass das tatsächlich
/// Ungleichheit erzeugt (sonst bliebe der Retry wirkungslos).
@Suite("WebTarget — Reload-Token-Gleichheit")
struct WebTargetTests {
private let url = URL(string: "https://seepuls.com/heute")!
@Test("Gleiche URL + gleicher Token → gleich")
func equalWhenSameTokenAndURL() {
let a = WebTarget(url: url, reloadToken: 3)
let b = WebTarget(url: url, reloadToken: 3)
#expect(a == b)
}
@Test("Erhöhter Token → ungleich (treibt den Reload)")
func differsWhenTokenIncremented() {
let before = WebTarget(url: url, reloadToken: 1)
let after = WebTarget(url: url, reloadToken: before.reloadToken + 1)
#expect(before != after)
}
@Test("Andere URL → ungleich")
func differsWhenURLDiffers() {
let a = WebTarget(url: url, reloadToken: 0)
let b = WebTarget(url: URL(string: "https://seepuls.com/alle")!, reloadToken: 0)
#expect(a != b)
}
@Test("Default-Token ist 0")
func defaultTokenIsZero() {
#expect(WebTarget(url: url).reloadToken == 0)
}
}