# iOS MVP 前端业务测试方案 ## 测试目标 在真实 iOS Simulator、Keycloak、PostgreSQL、Flowable 和 Kotlin 后端上验证 Flutter MVP 业务闭环,而不是只验证孤立 Widget。 ## 自动化场景 ### 员工 - 使用临时测试 Token 进入工作台,生产 OIDC 流程不被替换。 - 打开 Schema 动态请假表单,检查类型、开始时间、结束时间、原因及千问表单助手。 - 通过真实 API 创建唯一草稿,在“我的申请”中找到并打开。 - 从申请详情确认提交,验证状态进入“审批中”。 - 查询 AI 流程进度;千问未配置时验证明确的失败降级。 - 检查待办/通知入口与个人中心设备列表。 附件选择器和系统相册属于 iOS 系统 UI,仓库中的附件 Repository、上传进度、类型和幂等测试负责自动化覆盖;真实文件选择纳入人工验收步骤。 ### 部门主管 - 测试自动用员工身份创建并提交一条唯一申请。 - 主管进入待办,只定位该申请并批准。 - 验证批准成功提示,避免依赖历史测试数据。 ### OA 管理员 - 验证权限驱动的“OA 管理中心”入口。 - 验证业务指标、组织用户与角色、流程定义/实例、脱敏审计四个页面。 ## 执行前提 - PostgreSQL 与 Keycloak 容器健康。 - 后端运行在 `http://localhost:8080`。 - 已启动一个 iOS Simulator。 - Realm 中仅限本地开发的 employee、manager、admin 用户可用。 ## 执行命令 ```bash ./scripts/test-ios-mvp.sh ``` 脚本不会输出或持久化访问 Token。`AIOA_E2E_ACCESS_TOKEN` 只在显式测试构建中生效,普通 Debug、Release 和商店构建仍使用 OIDC Authorization Code + PKCE。 ## 人工补充验收 1. 点击 Keycloak 登录并完成浏览器回调。 2. 从系统文件选择器选择 JPEG、PNG 和 PDF,确认上传进度和附件状态。 3. 在配置 Firebase 的真机上确认前台、后台和点击跳转通知。 4. 在配置千问密钥的环境确认 AI 草稿建议成功,并检查确认卡片不会自动提交。