补充 Auth/Tasks/ScenicPermission/Live 单元测试,并完善 UI Test 登录与会话稳定性。
移除 LoginViewModel 硬编码账号,扩展登录流程测试覆盖;调整 ZLoginSmokeUITests 执行顺序与路由直达逻辑,避免清空 Keychain 影响其它用例。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -20,7 +20,7 @@ enum AppUITestRouteDriver {
|
||||
|| AppUITestLaunchState.pendingProfileRouteRawValue != nil else { return }
|
||||
|
||||
didApply = true
|
||||
try? await Task.sleep(nanoseconds: 600_000_000)
|
||||
try? await Task.sleep(nanoseconds: 1_200_000_000)
|
||||
|
||||
if let menuTitle = AppUITestLaunchState.pendingMenuTitle {
|
||||
openHomeMenu(title: menuTitle, appRouter: appRouter)
|
||||
@ -34,10 +34,12 @@ enum AppUITestRouteDriver {
|
||||
|
||||
/// 打开首页调试目录中的指定菜单。
|
||||
private static func openHomeMenu(title: String, appRouter: AppRouter) {
|
||||
guard let item = HomeMenuRouter.debugAllMenuItems().first(where: { $0.title == title }) else {
|
||||
let resolvedTitle = resolveMenuTitle(title)
|
||||
guard let item = HomeMenuRouter.debugAllMenuItems().first(where: { $0.title == resolvedTitle }) else {
|
||||
return
|
||||
}
|
||||
|
||||
appRouter.reset()
|
||||
let resolved = HomeMenuRouter.resolve(uri: item.uri, title: item.title)
|
||||
switch resolved {
|
||||
case .tab(let tab):
|
||||
@ -79,8 +81,19 @@ enum AppUITestRouteDriver {
|
||||
}
|
||||
|
||||
guard let route else { return }
|
||||
appRouter.reset()
|
||||
appRouter.select(.profile)
|
||||
appRouter.router(for: .profile).navigate(to: .profile(route))
|
||||
}
|
||||
|
||||
/// 将 UI Test 用例菜单名映射为调试目录标题。
|
||||
private static func resolveMenuTitle(_ title: String) -> String {
|
||||
switch title {
|
||||
case "系统设置":
|
||||
return "设置中心"
|
||||
default:
|
||||
return title
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -70,8 +70,8 @@ enum LoginFlowError: LocalizedError {
|
||||
@MainActor
|
||||
/// 登录页 ViewModel,负责表单状态、登录请求和多账号选择流程。
|
||||
final class LoginViewModel: ObservableObject {
|
||||
@Published var username = "18651857230"
|
||||
@Published var password = "zhifly666"
|
||||
@Published var username = ""
|
||||
@Published var password = ""
|
||||
@Published var privacyChecked = false
|
||||
@Published var isLoading = false
|
||||
@Published var isSelectingAccount = false
|
||||
|
||||
Reference in New Issue
Block a user