fix: 优化相册素材状态与删除保护
This commit is contained in:
@@ -1149,9 +1149,8 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
XCTAssertFalse(controller.view.allLabels().contains { $0.text == "刷新失败" })
|
||||
}
|
||||
|
||||
func testMaterialCellShowsSemanticStatusBadgeWithoutOverlappingSelectionCheck() throws {
|
||||
func testMaterialCellShowsIndependentPurchaseAndAIRetouchBadgesWithoutOverlappingSelectionCheck() throws {
|
||||
let cases: [(TravelAlbumMaterial, String, UInt)] = [
|
||||
(TravelAlbumMaterial(isPurchased: true), "已购", 0x475569),
|
||||
(TravelAlbumMaterial(aiRetouchStatus: 1), "待处理", 0xB45309),
|
||||
(TravelAlbumMaterial(aiRetouchStatus: 2), "修图中", 0x1D4ED8),
|
||||
(TravelAlbumMaterial(aiRetouchStatus: 3), "AI已修", 0x047857),
|
||||
@@ -1170,12 +1169,12 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
|
||||
let badgeView = try XCTUnwrap(
|
||||
cell.findSubview {
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialStatusBadge"
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialAIRetouchBadge"
|
||||
}
|
||||
)
|
||||
let badgeLabel = try XCTUnwrap(
|
||||
cell.findSubview {
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialStatusBadgeLabel"
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialAIRetouchBadgeLabel"
|
||||
} as? UILabel
|
||||
)
|
||||
let selectionCheck = try XCTUnwrap(
|
||||
@@ -1188,22 +1187,61 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
XCTAssertEqual(badgeLabel.text, expectedText)
|
||||
XCTAssertEqual(badgeView.backgroundColor?.travelAlbumTestHexRGB, expectedColor)
|
||||
XCTAssertLessThan(badgeView.frame.maxX, selectionCheck.frame.minX)
|
||||
XCTAssertTrue(cell.accessibilityLabel?.contains("状态:\(expectedText)") == true)
|
||||
XCTAssertTrue(cell.accessibilityLabel?.contains("修图状态:\(expectedText)") == true)
|
||||
}
|
||||
|
||||
let combinedCell = TravelAlbumMaterialCell(frame: CGRect(x: 0, y: 0, width: 176, height: 220))
|
||||
combinedCell.apply(
|
||||
material: TravelAlbumMaterial(isPurchased: true, aiRetouchStatus: 2),
|
||||
selectionMode: true,
|
||||
selected: false
|
||||
)
|
||||
combinedCell.layoutIfNeeded()
|
||||
let purchaseBadge = try XCTUnwrap(
|
||||
combinedCell.findSubview {
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialPurchaseBadge"
|
||||
}
|
||||
)
|
||||
let purchaseLabel = try XCTUnwrap(
|
||||
combinedCell.findSubview {
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialPurchaseBadgeLabel"
|
||||
} as? UILabel
|
||||
)
|
||||
let aiRetouchBadge = try XCTUnwrap(
|
||||
combinedCell.findSubview {
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialAIRetouchBadge"
|
||||
}
|
||||
)
|
||||
XCTAssertFalse(purchaseBadge.isHidden)
|
||||
XCTAssertFalse(aiRetouchBadge.isHidden)
|
||||
XCTAssertEqual(purchaseLabel.text, "已购")
|
||||
XCTAssertEqual(purchaseBadge.backgroundColor?.travelAlbumTestHexRGB, 0x475569)
|
||||
XCTAssertGreaterThan(purchaseBadge.frame.minY, aiRetouchBadge.frame.maxY)
|
||||
XCTAssertEqual(purchaseBadge.frame.minX, 6, accuracy: 0.5)
|
||||
XCTAssertEqual(purchaseBadge.frame.maxY, 170, accuracy: 0.5)
|
||||
XCTAssertTrue(combinedCell.accessibilityLabel?.contains("购买状态:已购") == true)
|
||||
XCTAssertTrue(combinedCell.accessibilityLabel?.contains("修图状态:修图中") == true)
|
||||
|
||||
let hiddenCell = TravelAlbumMaterialCell(frame: CGRect(x: 0, y: 0, width: 176, height: 220))
|
||||
hiddenCell.apply(
|
||||
material: TravelAlbumMaterial(aiRetouchStatus: 0, aiRetouchStatusName: "已上传"),
|
||||
selectionMode: false,
|
||||
selected: false
|
||||
)
|
||||
let hiddenBadge = try XCTUnwrap(
|
||||
let hiddenPurchaseBadge = try XCTUnwrap(
|
||||
hiddenCell.findSubview {
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialStatusBadge"
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialPurchaseBadge"
|
||||
}
|
||||
)
|
||||
XCTAssertTrue(hiddenBadge.isHidden)
|
||||
XCTAssertFalse(hiddenCell.accessibilityLabel?.contains("状态:") == true)
|
||||
let hiddenAIRetouchBadge = try XCTUnwrap(
|
||||
hiddenCell.findSubview {
|
||||
$0.accessibilityIdentifier == "travelAlbum.materialAIRetouchBadge"
|
||||
}
|
||||
)
|
||||
XCTAssertTrue(hiddenPurchaseBadge.isHidden)
|
||||
XCTAssertTrue(hiddenAIRetouchBadge.isHidden)
|
||||
XCTAssertFalse(hiddenCell.accessibilityLabel?.contains("购买状态:") == true)
|
||||
XCTAssertFalse(hiddenCell.accessibilityLabel?.contains("修图状态:") == true)
|
||||
}
|
||||
|
||||
private func waitUntil(_ condition: @escaping () -> Bool) async {
|
||||
|
||||
Reference in New Issue
Block a user