完善首页权限申请流程与队列播报体验。
对齐 Android 无权限强制弹窗、角色下拉与申请页交互,补充 UIButton configuration 适配,并增强景区排队 TTS 与相关单元测试。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -53,4 +53,30 @@ final class PermissionApplyStatusViewModelTests: XCTestCase {
|
||||
|
||||
XCTAssertNil(edited)
|
||||
}
|
||||
|
||||
func testCompletedApplicationIsNotDisplayedAsPending() async throws {
|
||||
let json = """
|
||||
{"code":100000,"msg":"success","data":[{"code":"AP004","role_id":1,"role_name":"摄影师","scenic_list":[],"status":2,"status_label":"已通过","created_at":"","audit_note":"","audited_at":null,"audited_by":null}]}
|
||||
""".data(using: .utf8)!
|
||||
let api = HomeAPI(client: APIClient(environment: .testing, session: MockURLSession(responses: [json])))
|
||||
let viewModel = PermissionApplyStatusViewModel(applyCode: "AP004")
|
||||
|
||||
await viewModel.loadPendingData(api: api)
|
||||
|
||||
XCTAssertNil(viewModel.pendingData)
|
||||
XCTAssertFalse(viewModel.isLoading)
|
||||
}
|
||||
|
||||
func testScenicListDialogState() {
|
||||
let viewModel = PermissionApplyStatusViewModel(applyCode: "AP005")
|
||||
let scenic = ScenicInfo(id: 12, name: "西湖景区", status: 1)
|
||||
viewModel.showScenicList(roleName: "摄影师", scenics: [scenic])
|
||||
|
||||
XCTAssertTrue(viewModel.showScenicListDialog)
|
||||
XCTAssertEqual(viewModel.dialogRoleName, "摄影师")
|
||||
XCTAssertEqual(viewModel.dialogScenicList, [scenic])
|
||||
|
||||
viewModel.hideScenicList()
|
||||
XCTAssertFalse(viewModel.showScenicListDialog)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user