import XCTest final class BiometricUITests: XCTestCase { private let app = XCUIApplication() private let springboard = XCUIApplication(bundleIdentifier: "com.apple.springboard") override func setUpWithError() throws { continueAfterFailure = false app.launchArguments = ["-ui-testing", "-reset-login-state"] } func testLoginMatch() { app.launch() app.buttons["biometric-login-button"].tap() waitForBiometricPrompt() XCTAssertTrue(app.staticTexts["biometric-login-success"].waitForExistence(timeout: 20)) } func testLoginFallback() { app.launch() app.buttons["biometric-login-button"].tap() waitForBiometricPrompt() XCTAssertTrue(app.staticTexts["biometric-login-fallback"].waitForExistence(timeout: 20)) } private func waitForBiometricPrompt() { let prompt = springboard.alerts.firstMatch XCTAssertTrue(prompt.waitForExistence(timeout: 5), "Biometric prompt did not appear") } }