新增完整 UI Test 回归套件,并完善启动隔离逻辑。

按模块拆分 XCUITest 用例与 Support 基础设施,UI Test 运行时跳过推送与排队 WebSocket,并将 Podfile 最低版本对齐 iOS 16。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-26 10:45:00 +08:00
parent 703078352c
commit 0c01ee26c3
39 changed files with 1533 additions and 231 deletions

View File

@ -0,0 +1,73 @@
//
// UITestHomeMenuCatalog.swift
// suixinkanUITests
//
// Created by Codex on 2026/6/26.
//
import Foundation
///
enum UITestHomeMenuCatalog {
///
enum Expectation: Equatable {
case navigationTitle(String)
case anyNavigationTitle([String])
case tab(TabBarNavigator.Tab)
case staticText(String)
case unsupportedPlaceholder(title: String)
}
///
struct Entry: Equatable {
let menuTitle: String
let expectation: Expectation
}
/// URI
static let entries: [Entry] = [
Entry(menuTitle: "空间设置", expectation: .navigationTitle("个人信息")),
Entry(menuTitle: "相册管理", expectation: .navigationTitle("相册管理")),
Entry(menuTitle: "相册预览上传", expectation: .navigationTitle("相册预览上传")),
Entry(menuTitle: "我的钱包", expectation: .navigationTitle("我的钱包")),
Entry(menuTitle: "立即收款", expectation: .navigationTitle("立即收款")),
Entry(menuTitle: "相册云盘", expectation: .navigationTitle("相册云盘")),
Entry(menuTitle: "传输管理", expectation: .navigationTitle("传输记录")),
Entry(menuTitle: "素材管理", expectation: .navigationTitle("素材管理")),
Entry(menuTitle: "上传素材", expectation: .navigationTitle("上传素材")),
Entry(menuTitle: "任务管理", expectation: .navigationTitle("任务管理")),
Entry(menuTitle: "发布任务", expectation: .navigationTitle("发布任务")),
Entry(menuTitle: "日程管理", expectation: .navigationTitle("日程管理")),
Entry(menuTitle: "消息中心", expectation: .navigationTitle("消息中心")),
Entry(menuTitle: "打卡点管理", expectation: .navigationTitle("打卡点管理")),
Entry(menuTitle: "样片管理", expectation: .navigationTitle("样片管理")),
Entry(menuTitle: "上传样片", expectation: .navigationTitle("上传样片")),
Entry(menuTitle: "直播管理", expectation: .navigationTitle("直播管理")),
Entry(menuTitle: "直播相册", expectation: .navigationTitle("直播相册")),
Entry(menuTitle: "景区选择", expectation: .navigationTitle("景区选择")),
Entry(menuTitle: "景区申请", expectation: .navigationTitle("景区申请")),
Entry(menuTitle: "权限申请", expectation: .navigationTitle("申请权限")),
Entry(menuTitle: "权限申请状态", expectation: .anyNavigationTitle(["权限申请", "权限申请状态"])),
Entry(menuTitle: "景区结算", expectation: .navigationTitle("景区结算")),
Entry(menuTitle: "结算审核", expectation: .navigationTitle("结算审核")),
Entry(menuTitle: "核销订单", expectation: .tab(.orders)),
Entry(menuTitle: "景区订单", expectation: .tab(.orders)),
Entry(menuTitle: "数据统计", expectation: .tab(.statistics)),
Entry(menuTitle: "项目管理", expectation: .navigationTitle("项目管理")),
Entry(menuTitle: "店铺项目管理", expectation: .navigationTitle("店铺项目管理")),
Entry(menuTitle: "位置上报", expectation: .navigationTitle("位置上报")),
Entry(menuTitle: "注册邀请", expectation: .navigationTitle("摄影师邀请")),
Entry(menuTitle: "邀请记录", expectation: .navigationTitle("邀请记录")),
Entry(menuTitle: "店铺管理", expectation: .staticText("全部功能")),
Entry(menuTitle: "飞行管理", expectation: .unsupportedPlaceholder(title: "飞行管理")),
Entry(menuTitle: "飞手认证", expectation: .navigationTitle("飞手认证")),
Entry(menuTitle: "飞控", expectation: .unsupportedPlaceholder(title: "飞控")),
Entry(menuTitle: "排队管理", expectation: .navigationTitle("排队管理")),
Entry(menuTitle: "运营区域", expectation: .navigationTitle("运营区域")),
Entry(menuTitle: "押金订单详情", expectation: .navigationTitle("押金订单")),
Entry(menuTitle: "提现审核", expectation: .navigationTitle("提现审核")),
Entry(menuTitle: "定位上报历史", expectation: .navigationTitle("位置上报历史")),
Entry(menuTitle: "更多功能", expectation: .staticText("全部功能")),
Entry(menuTitle: "系统设置", expectation: .navigationTitle("设置"))
]
}