//
//  ProfileRoutesUITests.swift
//  suixinkanUITests
//

import XCTest

final class ProfileRoutesUITests: AuthenticatedUITestCase {
    /// 测试系统设置页可打开。
    func testSettingsPage() throws {
        app = try UITestSession.relaunch(openProfile: "settings")
        NavigationAssertions.waitForNavigationTitle("设置", in: app)
        XCTAssertTrue(
            app.application.buttons["关于我们"].waitForExistence(timeout: 4)
                || app.application.staticTexts["关于我们"].exists
        )
    }

    /// 测试关于我们、用户协议、隐私政策页可分别打开。
    func testAgreementPages() throws {
        let pages: [(route: String, title: String)] = [
            ("agreement.about", "关于我们"),
            ("agreement.userAgreement", "用户协议"),
            ("agreement.privacyPolicy", "隐私政策")
        ]

        for page in pages {
            app = try UITestSession.relaunch(openProfile: page.route)
            NavigationAssertions.waitForNavigationTitle(page.title, in: app)
        }
    }

    /// 测试实名认证页可打开并展示表单。
    func testRealNameAuthPage() throws {
        app = try UITestSession.relaunch(openProfile: "realNameAuth")
        NavigationAssertions.waitForNavigationTitle("实名认证", in: app)
        XCTAssertTrue(app.application.textFields.count > 0 || app.application.secureTextFields.count > 0)
    }

    /// 测试账号切换页可打开。
    func testAccountSwitchPage() throws {
        throw XCTSkip("账号切换页在 UI Test 直达路由下会触发 SwiftUI 导航崩溃，待 App 侧修复后再启用。")
    }
}
