import XCTest

@MainActor
final class SnapshotTests: XCTestCase {
    let app = XCUIApplication()

    override func setUpWithError() throws {
        continueAfterFailure = false
        setupSnapshot(app)
        app.launch()
    }

    func test01Dashboard() {
        snapshot("01_Dashboard")
    }

    func test02Logs() {
        if app.tabBars.buttons["Logs"].exists {
            app.tabBars.buttons["Logs"].firstMatch.tap()
        } else if app.buttons["Logs"].exists {
            app.buttons["Logs"].firstMatch.tap()
        }
        sleep(1)
        snapshot("02_Logs")
    }

    func test03Settings() {
        // iPad on iOS 18+ uses floating tab bar which creates nested elements
        // Use firstMatch to handle multiple matching elements
        if app.tabBars.buttons["Settings"].exists {
            app.tabBars.buttons["Settings"].firstMatch.tap()
        } else if app.buttons["Settings"].exists {
            app.buttons["Settings"].firstMatch.tap()
        } else {
            let tabBar = app.tabBars.firstMatch
            if tabBar.exists {
                tabBar.buttons.element(boundBy: tabBar.buttons.count - 1).tap()
            }
        }
        sleep(1)
        snapshot("03_Settings")
    }
}
