// // PlantDetailScreen.swift // PlantGuideUITests // // Screen object for the Plant Detail view. // import XCTest struct PlantDetailScreen { let app: XCUIApplication // MARK: - Elements var detailView: XCUIElement { app.otherElements[UITestID.PlantDetail.detailView] } var plantName: XCUIElement { app.staticTexts[UITestID.PlantDetail.plantName] } var favoriteButton: XCUIElement { app.buttons[UITestID.PlantDetail.favoriteButton] } var editButton: XCUIElement { app.buttons[UITestID.PlantDetail.editButton] } var deleteButton: XCUIElement { app.buttons[UITestID.PlantDetail.deleteButton] } var careSection: XCUIElement { app.otherElements[UITestID.PlantDetail.careSection] } var tasksSection: XCUIElement { app.otherElements[UITestID.PlantDetail.tasksSection] } /// The back button in navigation bar (leads back to Collection). var backButton: XCUIElement { app.navigationBars.buttons.firstMatch } // MARK: - State Checks @discardableResult func waitForLoad(timeout: TimeInterval = 5) -> Bool { // Wait for any navigation bar to appear (title is dynamic plant name) app.navigationBars.firstMatch.waitForExistence(timeout: timeout) } // MARK: - Actions func tapBack() { backButton.tapWhenReady() } }