ζ-0 Setup: Repo-Skelett, iOS-Build grün, Healthz live
- project.yml mit Bundle ev.mana.zitare + Widget + ShareExt-Targets - ManaSwiftCore (ManaCore + ManaTokens) + ManaSwiftUI (ManaAuthUI) als Package-Dependencies via path: - Pure SwiftUI für Native-Surfaces, WKWebView nur für Lese-Tabs (Hybrid-Sonderfall vs cards/memoro/manaspur, dokumentiert im Playbook ZITARE_NATIVE_GREENFIELD.md) - Theme: paper-Variant aus @mana/themes - ZitareAPI.healthCheck via direct URLSession (öffentlicher Endpoint, kein AuthenticatedTransport-Gate) - 6/6 AppConfigTests + 1/1 UI-Smoke grün auf iPhone 16e Simulator - Live: zitare-api.mana.how/healthz → HTTP/2 200 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
0bd59ed148
25 changed files with 1468 additions and 0 deletions
17
Tests/UITests/SmokeUITests.swift
Normal file
17
Tests/UITests/SmokeUITests.swift
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
import XCTest
|
||||
|
||||
/// Phase ζ-0 Smoke-Test: App startet, Account-Tab erreichbar.
|
||||
final class SmokeUITests: XCTestCase {
|
||||
func test_appLaunches() {
|
||||
let app = XCUIApplication()
|
||||
app.launch()
|
||||
// TabBar zeigt drei Tabs: Lesen / Erkunden / Konto. „Lesen" ist
|
||||
// der Default-Tab; sein Label ist sowohl im Tab-Item als auch
|
||||
// im Placeholder-Body sichtbar — beides genügt für den Smoke.
|
||||
let lesenButton = app.buttons["Lesen"]
|
||||
let lesenText = app.staticTexts["Lesen"]
|
||||
XCTAssertTrue(
|
||||
lesenButton.waitForExistence(timeout: 5) || lesenText.waitForExistence(timeout: 5)
|
||||
)
|
||||
}
|
||||
}
|
||||
34
Tests/UnitTests/AppConfigTests.swift
Normal file
34
Tests/UnitTests/AppConfigTests.swift
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import XCTest
|
||||
@testable import ZitareNative
|
||||
|
||||
/// Phase ζ-0 Basis-Tests: Konfigurations-Konstanten sind konsistent
|
||||
/// mit dem mana-Plattform-Setup (Bundle-ID, Keychain-Service,
|
||||
/// Endpoint-Domains).
|
||||
final class AppConfigTests: XCTestCase {
|
||||
func test_authBaseURL_pointsToManaAuth() {
|
||||
XCTAssertEqual(
|
||||
AppConfig.manaAppConfig.authBaseURL.absoluteString,
|
||||
"https://auth.mana.how"
|
||||
)
|
||||
}
|
||||
|
||||
func test_keychainService_matchesBundle() {
|
||||
XCTAssertEqual(AppConfig.manaAppConfig.keychainService, "ev.mana.zitare")
|
||||
}
|
||||
|
||||
func test_apiBaseURL_pointsToZitareApi() {
|
||||
XCTAssertEqual(AppConfig.apiBaseURL.absoluteString, "https://zitare-api.mana.how")
|
||||
}
|
||||
|
||||
func test_webBaseURL_isPublicSurface() {
|
||||
XCTAssertEqual(AppConfig.webBaseURL.absoluteString, "https://zitare.com")
|
||||
}
|
||||
|
||||
func test_appBaseURL_isManaHowSurface() {
|
||||
XCTAssertEqual(AppConfig.appBaseURL.absoluteString, "https://zitare.mana.how")
|
||||
}
|
||||
|
||||
func test_appGroup_matchesEntitlement() {
|
||||
XCTAssertEqual(AppConfig.appGroup, "group.ev.mana.zitare")
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue