import XCTest

class HierarchyDumpTest: XCTestCase {
    func testDumpAccessibilityTree() {
        let app = XCUIApplication()
        app.launchArguments = ["--ui-testing", "--reset-state", "--disable-animations", "--bypass-subscription", "--skip-onboarding"]
        app.launch()
        sleep(3)

        print("\n=== ELEMENT QUERIES ===")
        print("otherElements[mood_header]: \(app.otherElements[\"mood_header\"].exists)")
        print("descendants[mood_header]: \(app.descendants(matching: .any)[\"mood_header\"].firstMatch.exists)")
        print("groups[mood_header]: \(app.groups[\"mood_header\"].exists)")
        print("scrollViews[mood_header]: \(app.scrollViews[\"mood_header\"].exists)")
        print("staticTexts[mood_header]: \(app.staticTexts[\"mood_header\"].exists)")
        print("buttons[mood_button_great]: \(app.buttons[\"mood_button_great\"].exists)")
        print("tabBars count: \(app.tabBars.count)")
        if app.tabBars.count > 0 {
            let tb = app.tabBars.firstMatch
            for b in tb.buttons.allElementsBoundByIndex {
                print("  tab button: \(b.identifier) label=\(b.label)")
            }
        }
        print("otherElements[settings_header]: \(app.otherElements[\"settings_header\"].exists)")
        
        print("\n=== HIERARCHY (first 200 lines) ===")
        let desc = app.debugDescription
        let lines = desc.components(separatedBy: "\n")
        for (i, line) in lines.prefix(200).enumerated() {
            print("\(i): \(line)")
        }
        
        XCTAssertTrue(true) // always pass
    }
}
