// // SettingsScreen.swift // PlantGuideUITests // // Screen object for the Settings tab. // import XCTest struct SettingsScreen { let app: XCUIApplication // MARK: - Elements var navigationBar: XCUIElement { app.navigationBars["Settings"] } var notificationsToggle: XCUIElement { app.switches[UITestID.Settings.notificationsToggle] } var clearCacheButton: XCUIElement { app.buttons[UITestID.Settings.clearCacheButton] } var versionInfo: XCUIElement { app.staticTexts[UITestID.Settings.versionInfo] } /// The settings form container — SwiftUI Form renders as a table or collection view. var formContainer: XCUIElement { if app.tables.firstMatch.waitForExistence(timeout: 3) { return app.tables.firstMatch } else { return app.collectionViews.firstMatch } } // MARK: - State Checks @discardableResult func waitForLoad(timeout: TimeInterval = 10) -> Bool { navigationBar.waitForExistence(timeout: timeout) } }