优化 UI Test 路由直达与会话复用,提升自定义 TabBar 下的稳定性。

新增启动参数直达首页与个人中心页面,引入 AppUITestRouteDriver 与 UITestSession 共享登录,并重构各模块用例的导航断言逻辑。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-26 11:25:36 +08:00
parent 0c01ee26c3
commit aac8458b04
31 changed files with 587 additions and 166 deletions

View File

@ -0,0 +1,49 @@
//
// UITestNavigation.swift
// suixinkanUITests
//
// Created by Codex on 2026/6/26.
//
import XCTest
///
enum UITestNavigation {
/// App Tab
static func resetToHome(app: SuixinkanApp, file: StaticString = #filePath, line: UInt = #line) {
app.application.activate()
app.waitForGlobalLoadingToDisappear()
if app.isOnLoginScreen {
return
}
popToMainTabsIfNeeded(app: app)
if app.isOnMainTabs {
TabBarNavigator.select(.home, app: app, file: file, line: line)
}
}
/// Tab
private static func popToMainTabsIfNeeded(app: SuixinkanApp) {
for _ in 0..<8 {
if app.isOnMainTabs {
return
}
BackNavigator.dismissCustomTopBarIfNeeded(app: app)
if app.isOnMainTabs {
return
}
let navigationBar = app.application.navigationBars.element(boundBy: 0)
guard navigationBar.exists else { break }
let backButton = navigationBar.buttons.element(boundBy: 0)
guard backButton.waitForExistence(timeout: 1) else { break }
backButton.tap()
app.waitForGlobalLoadingToDisappear()
}
}
}