fix: streamline AI retouch submission feedback

This commit is contained in:
2026-08-14 15:46:17 +08:00
parent 30bfe0313f
commit 83afcb6deb
6 changed files with 56 additions and 48 deletions
@@ -274,6 +274,33 @@ final class TravelAlbumDetailViewModelTests: XCTestCase {
XCTAssertTrue(viewModel.selectedMaterialIds.isEmpty)
}
func testAIRetouchSubmissionRefreshesAlbumCountsAndCurrentMaterialList() async {
let api = TravelAlbumMockAPI()
api.infoResponse = TravelAlbum(id: 2, name: "刷新后的相册")
api.materialListResponses = [
TravelAlbumListResponse(total: 3, list: []),
TravelAlbumListResponse(total: 1, list: []),
TravelAlbumListResponse(total: 3, list: [
TravelAlbumMaterial(id: 7),
TravelAlbumMaterial(id: 8),
TravelAlbumMaterial(id: 9),
]),
]
let viewModel = TravelAlbumDetailViewModel(albumId: 2)
viewModel.toggleSelectionMode()
viewModel.toggleMaterialSelection(TravelAlbumMaterial(id: 7, status: 1))
await viewModel.refreshAfterAIRetouchSubmission(api: api)
XCTAssertFalse(viewModel.isSelectionMode)
XCTAssertTrue(viewModel.selectedMaterialIds.isEmpty)
XCTAssertEqual(viewModel.album?.name, "刷新后的相册")
XCTAssertEqual(viewModel.allPhotoCount, 3)
XCTAssertEqual(viewModel.purchasedPhotoCount, 1)
XCTAssertEqual(viewModel.materials.map(\.id), [7, 8, 9])
XCTAssertEqual(api.materialRequests.count, 3)
}
func testPreviewDeletionRemovesMaterialAndSynchronizesCounts() async {
let api = TravelAlbumMockAPI()
api.materialListResponses = [