- 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>
17 lines
658 B
Swift
17 lines
658 B
Swift
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)
|
|
)
|
|
}
|
|
}
|