新增启动参数直达首页与个人中心页面,引入 AppUITestRouteDriver 与 UITestSession 共享登录,并重构各模块用例的导航断言逻辑。 Co-authored-by: Cursor <cursoragent@cursor.com>
76 lines
2.8 KiB
Swift
76 lines
2.8 KiB
Swift
//
|
|
// OrdersFlowUITests.swift
|
|
// suixinkanUITests
|
|
//
|
|
|
|
import XCTest
|
|
|
|
final class OrdersFlowUITests: AuthenticatedUITestCase {
|
|
/// 测试门店订单列表可进入详情页。
|
|
func testStoreOrderDetailFlow() throws {
|
|
TabBarNavigator.select(.orders, app: app)
|
|
|
|
app.application.staticTexts["订单管理"].tap()
|
|
app.waitForGlobalLoadingToDisappear()
|
|
|
|
let firstOrderCard = app.application.otherElements
|
|
.matching(NSPredicate(format: "identifier BEGINSWITH 'orders.store.card.'"))
|
|
.firstMatch
|
|
if !firstOrderCard.waitForExistence(timeout: 10) {
|
|
throw XCTSkip("测试账号当前景区下暂无门店订单,跳过详情流测试。")
|
|
}
|
|
|
|
firstOrderCard.tap()
|
|
NavigationAssertions.waitForNavigationTitle("订单详情", in: app)
|
|
BackNavigator.goBack(app: app)
|
|
}
|
|
|
|
/// 测试核销订单列表可进入详情页。
|
|
func testWriteOffOrderDetailFlow() throws {
|
|
TabBarNavigator.select(.orders, app: app)
|
|
|
|
app.application.staticTexts["核销订单"].tap()
|
|
app.waitForGlobalLoadingToDisappear()
|
|
|
|
let firstDetailButton = app.application.buttons
|
|
.matching(NSPredicate(format: "identifier BEGINSWITH 'orders.writeoff.detail.'"))
|
|
.firstMatch
|
|
if !firstDetailButton.waitForExistence(timeout: 10) {
|
|
throw XCTSkip("测试账号当前景区下暂无核销订单,跳过详情流测试。")
|
|
}
|
|
|
|
firstDetailButton.tap()
|
|
NavigationAssertions.waitForNavigationTitle("核销订单详情", in: app)
|
|
BackNavigator.goBack(app: app)
|
|
}
|
|
|
|
/// 测试押金订单链路可进入列表与详情。
|
|
func testDepositOrderFlow() throws {
|
|
app = try UITestSession.relaunch(openMenu: "押金订单详情")
|
|
NavigationAssertions.waitForNavigationTitle("押金订单", in: app)
|
|
|
|
let firstCell = app.application.cells.element(boundBy: 0)
|
|
if firstCell.waitForExistence(timeout: 8) {
|
|
firstCell.tap()
|
|
NavigationAssertions.waitForNavigationTitle("押金订单详情", in: app)
|
|
BackNavigator.goBack(app: app)
|
|
} else {
|
|
throw XCTSkip("测试账号暂无押金订单,跳过详情流测试。")
|
|
}
|
|
}
|
|
|
|
/// 测试扫码页可打开并关闭。
|
|
func testScannerCanOpenAndClose() {
|
|
TabBarNavigator.select(.orders, app: app)
|
|
|
|
let scanButton = app.application.buttons["扫码核销"]
|
|
XCTAssertTrue(scanButton.waitForExistence(timeout: 6))
|
|
scanButton.tap()
|
|
|
|
let closeButton = app.application.buttons["scanner.close"]
|
|
XCTAssertTrue(closeButton.waitForExistence(timeout: 8))
|
|
closeButton.tap()
|
|
NavigationAssertions.waitForNavigationTitle("订单", in: app)
|
|
}
|
|
}
|