mana-swift-event-sync/Tests/ManaEventSyncTests
Till JS e574bc55d6 Cloud-Sync-Opt-in-Gate (Art. 25) — Parität zur Web-App
Native synct bisher per Default beim Login, Web ist Opt-in. Neues
EventSyncConfig.requireSyncConsent (Default false → abwärtskompatibel):
ist es gesetzt, läuft die Engine ohne explizite Einwilligung lokal-only
(authMode() → anonymous trotz JWT, kein Egress, Outbox staut). Einwilligung
beim start() aus mana-auth /api/v1/settings (gleiche Quelle wie Web),
setSyncConsent(_:) als Konto-Toggle (true claimt+startet wie signIn, false
stoppt Server-Sync; lokale Daten bleiben). + syncConsentRequired/hasSyncConsent.

Tests: SyncConsentTests (6) grün, volle Suite ohne Regression.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 16:09:25 +02:00
..
CoreTests.swift 0.9.0: 402-Handling (kein aktives Cloud-Sync-Abo) 2026-06-17 15:26:20 +02:00
CryptoTests.swift chore(lint): swiftlint --strict sauber (0 Violations) 2026-05-25 15:49:48 +02:00
DecryptFailureTests.swift feat(engine): Decrypt-Failures sichtbar statt Silent-Skip 2026-06-10 21:52:37 +02:00
GoldenReplayParityTests.swift test(golden): Replay-Parität gegen geteilte event-kit-Fixtures (E-4.3) 2026-05-25 17:49:22 +02:00
StorageTests.swift feat(engine): hasPendingAnonymousEvents() — Claim-Guard für Login-Hook 2026-05-25 19:49:33 +02:00
SyncConsentTests.swift Cloud-Sync-Opt-in-Gate (Art. 25) — Parität zur Web-App 2026-06-23 16:09:25 +02:00
WireParityTests.swift fix(wire): sequenceNumber als JSON-String decoden (Cross-Device-Sync) 2026-05-25 16:43:42 +02:00