持久化服务端 expired 过期时间戳以正确恢复倒计时,切换在线/离线与上报时展示定位 Loading,移除重复的成功 Alert,并将 Toast 调整为居中半透明样式。 Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.2 KiB
Swift
35 lines
1.2 KiB
Swift
//
|
|
// BackNavigator.swift
|
|
// suixinkanUITests
|
|
//
|
|
// Created by Codex on 2026/6/26.
|
|
//
|
|
|
|
import XCTest
|
|
|
|
/// 导航返回封装。
|
|
enum BackNavigator {
|
|
/// 通过导航栏返回按钮回到上一页。
|
|
static func goBack(app: SuixinkanApp, file: StaticString = #filePath, line: UInt = #line) {
|
|
let navigationBar = app.application.navigationBars.element(boundBy: 0)
|
|
guard navigationBar.exists else {
|
|
XCTFail("当前页面没有可返回的导航栏。", file: file, line: line)
|
|
return
|
|
}
|
|
|
|
let backButton = navigationBar.buttons.element(boundBy: 0)
|
|
XCTAssertTrue(backButton.waitForExistence(timeout: 4), "未找到返回按钮。", file: file, line: line)
|
|
backButton.tap()
|
|
app.waitForGlobalLoadingToDisappear()
|
|
}
|
|
|
|
/// 关闭仍使用自定义顶栏返回按钮的页面。
|
|
static func dismissCustomTopBarIfNeeded(app: SuixinkanApp) {
|
|
let backCandidates = app.application.buttons.matching(NSPredicate(format: "label CONTAINS 'chevron.left'"))
|
|
if backCandidates.count > 0 {
|
|
backCandidates.element(boundBy: 0).tap()
|
|
app.waitForGlobalLoadingToDisappear()
|
|
}
|
|
}
|
|
}
|