mana-swift-ui/Tests/ManaAuthUITests
Till JS 6417b4cd33 v0.2.0 — ManaAuthGate für Action-Level-Login-Eskalation
Apps mit Guest-/Login-optional-Modus brauchen kein Full-Screen-
Login-Gate mehr. Aktionen, die einen Account brauchen, werden in
gate.require { ... } gewrappt — Login wird zur Inline-Eskalation,
nicht zum App-Block.

ManaAuthGate — @Observable-State-Maschine:
- require(reason:work:) sync und async Overloads
- Bei .signedIn: Aktion läuft sofort
- Bei .signedOut/.guest: Sign-In-Sheet öffnet, Aktion gemerkt;
  nach erfolgreichem Sign-In läuft sie automatisch
- lastReason als optionaler Telemetrie-Hint

ManaAuthGateModifier / View.manaAuthGate(_:signIn:) — hängt das
Sign-In-Sheet an einen Root-View, beobachtet auth.status. Wechsel
auf .signedIn schließt das Sheet + resolved pending; manuelles
Dismiss verwirft.

Konvention für native Apps:
1. bootstrap() → bei .signedOut → enterGuestMode()
2. Root-View zeigt immer App-Inhalte, nie eine Vollbild-Login-Wall
3. Account-Aktionen via gate.require { ... }

Memoro hat das informell schon. Cards komplett umgestellt (siehe
cards-native commit). Manaspur folgt.

7 neue Tests: sofortiger Run bei .signedIn, Defer bei .signedOut/
.guest, resolvePending, cancelPending, lastReason-Tracking.

Setzt mana-swift-core ≥ 1.2.0 voraus.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 22:16:27 +02:00
..
AccountViewModelTests.swift v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00
EmailVerifyGateViewModelTests.swift v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00
ForgotResetViewModelTests.swift v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00
LoginViewModelTests.swift v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00
ManaAuthGateTests.swift v0.2.0 — ManaAuthGate für Action-Level-Login-Eskalation 2026-05-13 22:16:27 +02:00
ManaBrandConfigTests.swift v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00
MockURLProtocol.swift v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00
SignUpViewModelTests.swift v0.1.0 — initialer Sprint, vollständige Auth-Reise als SwiftUI 2026-05-13 19:22:42 +02:00