import XCTest /// Simple test to verify basic app launch and login screen /// This is the foundation test - if this works, we can build more complex tests final class SimpleLoginTest: BaseUITestCase { override var includeResetStateLaunchArgument: Bool { false } override func setUpWithError() throws { try super.setUpWithError() // CRITICAL: Ensure we're logged out before each test ensureLoggedOut() } override func tearDownWithError() throws { try super.tearDownWithError() } // MARK: - Helper Methods /// Ensures the user is logged out and on the login screen private func ensureLoggedOut() { UITestHelpers.ensureLoggedOut(app: app) } // MARK: - Tests /// Test 1: App launches and shows login screen (or logs out if needed) func testAppLaunchesAndShowsLoginScreen() { let usernameField = app.textFields[AccessibilityIdentifiers.Authentication.usernameField] XCTAssertTrue(usernameField.exists, "Username field should be visible on login screen after logout") } /// Test 2: Can type in username and password fields func testCanTypeInLoginFields() { let usernameField = app.textFields[AccessibilityIdentifiers.Authentication.usernameField] usernameField.waitForExistenceOrFail(timeout: defaultTimeout, message: "Username field should exist on login screen") usernameField.focusAndType("testuser", app: app) let passwordField = app.secureTextFields[AccessibilityIdentifiers.Authentication.passwordField].exists ? app.secureTextFields[AccessibilityIdentifiers.Authentication.passwordField] : app.textFields[AccessibilityIdentifiers.Authentication.passwordField] XCTAssertTrue(passwordField.exists, "Password field should exist on login screen") passwordField.focusAndType("testpass123", app: app) let signInButton = app.buttons[AccessibilityIdentifiers.Authentication.loginButton] XCTAssertTrue(signInButton.exists, "Login button should exist on login screen") } }