修复任务提交与弹窗交互问题
This commit is contained in:
@ -30,6 +30,32 @@ final class TaskAddViewModelTests: XCTestCase {
|
||||
XCTAssertEqual(message, "请填写任务名称!")
|
||||
}
|
||||
|
||||
func testTextInputsAreTrimmedToAndroidLimits() {
|
||||
let viewModel = TaskAddViewModel(appStore: appStore)
|
||||
|
||||
viewModel.updateTaskName(String(repeating: "任", count: 25))
|
||||
viewModel.updateTaskDetails(String(repeating: "描", count: 210))
|
||||
viewModel.addCloudFiles([CloudFile(id: 1, name: "A", type: 2)])
|
||||
viewModel.presentRemarkDialog(for: viewModel.selectedFiles[0].id)
|
||||
viewModel.updateRemarkDialogText(String(repeating: "注", count: 60))
|
||||
|
||||
XCTAssertEqual(viewModel.taskName.count, 20)
|
||||
XCTAssertEqual(viewModel.taskDetails.count, 200)
|
||||
XCTAssertEqual(viewModel.remarkDialogText.count, 50)
|
||||
}
|
||||
|
||||
func testUploadingStateBlocksSubmitButKeepsButtonActionUseful() async {
|
||||
let viewModel = TaskAddViewModel(appStore: appStore)
|
||||
viewModel.updateTaskName("任务")
|
||||
viewModel.addUploadPlaceholder(fileName: "a.jpg", fileType: 2, uploadTaskId: "task1")
|
||||
var message: String?
|
||||
viewModel.onShowMessage = { message = $0 }
|
||||
|
||||
await viewModel.validateAndSubmit(api: TaskAPI(client: makeClient()))
|
||||
|
||||
XCTAssertEqual(message, "文件正在上传中,请稍后添加!")
|
||||
}
|
||||
|
||||
func testBuildAddTaskRequestSplitsCloudAndUploadFiles() {
|
||||
let viewModel = TaskAddViewModel(appStore: appStore)
|
||||
viewModel.updateTaskName("任务A")
|
||||
@ -50,6 +76,14 @@ final class TaskAddViewModelTests: XCTestCase {
|
||||
XCTAssertEqual(request.uploadFile[0].fileUrl, "https://cdn/a.jpg")
|
||||
}
|
||||
|
||||
func testTaskFileSourceBadgeTextMatchesAndroidLabels() {
|
||||
let cloudItem = TaskFileItem(source: .cloud, cloudFile: CloudFile(id: 1, name: "云文件", type: 2))
|
||||
let uploadItem = TaskFileItem(source: .upload, uploadFileName: "a.jpg", uploadFileType: 2)
|
||||
|
||||
XCTAssertEqual(cloudItem.sourceBadgeText, "云盘")
|
||||
XCTAssertEqual(uploadItem.sourceBadgeText, "本地")
|
||||
}
|
||||
|
||||
func testAddCloudFilesDedupesAndAutoRemarkSingleFile() {
|
||||
let viewModel = TaskAddViewModel(appStore: appStore)
|
||||
viewModel.addCloudFiles([CloudFile(id: 1, name: "A", type: 2)])
|
||||
@ -74,8 +108,12 @@ final class TaskAddViewModelTests: XCTestCase {
|
||||
viewModel.resetAllState()
|
||||
|
||||
XCTAssertEqual(viewModel.taskName, "")
|
||||
XCTAssertEqual(viewModel.taskDetails, "")
|
||||
XCTAssertNil(viewModel.selectedOrderNumber)
|
||||
XCTAssertEqual(viewModel.urgentHour, 0)
|
||||
XCTAssertTrue(viewModel.selectedFiles.isEmpty)
|
||||
XCTAssertFalse(viewModel.isUploading)
|
||||
XCTAssertFalse(viewModel.showSuccessDialog)
|
||||
}
|
||||
|
||||
private func makeClient() -> APIClient {
|
||||
|
||||
Reference in New Issue
Block a user