mana-swift-core/Tests/ManaCoreTests/ManaAppConfigTests.swift
Till JS df6f67ee45 v1.0.0 — initiale Extraktion aus memoro-native
ManaCore + ManaTokens als Swift-Package für alle nativen
mana-e.V.-Apps. Phase α aus mana/docs/MANA_SWIFT.md durch.

ManaCore:
- AuthClient gegen mana-auth (Login, Refresh, Status-Maschine)
- AuthenticatedTransport (URLSession + 401-Retry)
- ManaAppConfig-Protocol für App-injizierbare Konfig
- KeychainStore mit optionaler Shared-Access-Group
- JWT-Parser für lokale Expiry-Prüfung
- AuthError, CoreLog (interne OSLog-Logger)

ManaTokens:
- 12 Vereins-Tokens als dynamic Light/Dark Colors
- 5 Brand-Literale (mana-yellow, spectrum-orange, ...)
- Spacing, Radius, Typography aus mana/docs/THEMING.md

Tests: 12 Unit-Tests grün via swift test.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 19:13:31 +02:00

27 lines
926 B
Swift

import Foundation
import Testing
@testable import ManaCore
@Suite("ManaAppConfig")
struct ManaAppConfigTests {
@Test("DefaultManaAppConfig setzt Felder")
func defaultSetsFields() throws {
let config = DefaultManaAppConfig(
authBaseURL: URL(string: "https://auth.mana.how")!,
keychainService: "ev.mana.memoro",
keychainAccessGroup: "TEAMID.ev.mana.shared"
)
#expect(config.authBaseURL.absoluteString == "https://auth.mana.how")
#expect(config.keychainService == "ev.mana.memoro")
#expect(config.keychainAccessGroup == "TEAMID.ev.mana.shared")
}
@Test("AccessGroup ist optional")
func accessGroupOptional() {
let config = DefaultManaAppConfig(
authBaseURL: URL(string: "https://auth.mana.how")!,
keychainService: "ev.mana.cards"
)
#expect(config.keychainAccessGroup == nil)
}
}