增强有线传图手动上传并发能力,并稳定列表行布局。
指定/勾选/批量上传支持恢复仅本地持久化的待传照片,手动上传与 pipeline 均按 3 路并发;pipeline 任务签名去重避免状态回退,照片行固定高度并预留进度条占位。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@ -60,6 +60,24 @@ final class CameraTransferPipelineTests: XCTestCase {
|
||||
XCTAssertEqual(pipeline.task(forAssetID: "asset_retry_001")?.status, .uploaded)
|
||||
}
|
||||
|
||||
/// 测试手动上传多张照片时按并发上限上传,而不是串行一张张上传。
|
||||
func testManualUploadAssetsUsesConcurrentLimit() async throws {
|
||||
let camera = MockCameraService()
|
||||
let sink = MockSlowUploadSink()
|
||||
let pipeline = CameraTransferPipeline(cameraService: camera)
|
||||
pipeline.configure(uploadSink: sink, uploadEnabled: true)
|
||||
camera.listedAssets = (1 ... 6).map { index in
|
||||
CameraAsset(id: "manual_\(index)", filename: "MANUAL_\(index).JPG", fileSize: 1024)
|
||||
}
|
||||
|
||||
await pipeline.syncExistingPhotos()
|
||||
await pipeline.uploadAssets(withIDs: camera.listedAssets.map(\.id))
|
||||
|
||||
XCTAssertEqual(sink.uploadCount, 6)
|
||||
XCTAssertGreaterThan(sink.maxActiveUploads, 1)
|
||||
XCTAssertLessThanOrEqual(sink.maxActiveUploads, 3)
|
||||
}
|
||||
|
||||
/// 测试拍后传输下载的旧照片,切到边拍边传后不会被新照片触发自动上传。
|
||||
func testSwitchingToLiveCaptureDoesNotUploadPostShootDownloads() async throws {
|
||||
let camera = MockCameraService()
|
||||
|
||||
Reference in New Issue
Block a user