feat: 优化 AI 修图模板与全屏预览
This commit is contained in:
@@ -25,7 +25,7 @@ final class TravelAlbumAIRetouchTemplateViewModelTests: XCTestCase {
|
||||
XCTAssertTrue(viewModel.shouldShowInitialTips)
|
||||
XCTAssertEqual(
|
||||
viewModel.initialTipsText,
|
||||
"Tips:本次显示 3 类风格。每张照片生成「精修后 + 氛围感」2 个结果,第一张照片另生成所选封面结果。"
|
||||
"每张照片生成精修结果,氛围感可选;本次可免费生成 1 张封面"
|
||||
)
|
||||
XCTAssertEqual(viewModel.visibleCategories, [.refined, .atmosphere, .cover])
|
||||
XCTAssertEqual(viewModel.selectedRefinedTemplateId, 11)
|
||||
|
||||
@@ -206,7 +206,7 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
XCTAssertFalse(imageView.constraintsAffectingLayout(for: .vertical).isEmpty)
|
||||
}
|
||||
|
||||
func testPreviewUsesScreenshotChromeAndConstrainedImageViewport() throws {
|
||||
func testPreviewUsesScreenshotChromeOverFullScreenImageViewport() throws {
|
||||
UIView.setAnimationsEnabled(false)
|
||||
defer { UIView.setAnimationsEnabled(true) }
|
||||
|
||||
@@ -287,8 +287,10 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
XCTAssertEqual(segmentedControl.selectedSegmentIndex, 0)
|
||||
XCTAssertEqual(backButton.bounds.size, CGSize(width: 44, height: 44))
|
||||
XCTAssertNil(backButton.configuration?.baseBackgroundColor)
|
||||
XCTAssertEqual(collectionView.frame.minY, topChrome.frame.maxY, accuracy: 0.5)
|
||||
XCTAssertEqual(collectionView.frame.maxY, bottomChrome.frame.minY, accuracy: 0.5)
|
||||
XCTAssertEqual(collectionView.frame, controller.view.bounds)
|
||||
XCTAssertLessThan(collectionView.frame.minY, topChrome.frame.maxY)
|
||||
XCTAssertGreaterThan(collectionView.frame.maxY, bottomChrome.frame.minY)
|
||||
XCTAssertEqual(collectionView.contentInsetAdjustmentBehavior, .never)
|
||||
XCTAssertTrue(controller.view.allLabels().contains { $0.text == "IMG_0002.jpeg" })
|
||||
XCTAssertTrue(controller.view.allLabels().contains { $0.text == "2.4MB" })
|
||||
XCTAssertTrue(controller.view.allLabels().contains { $0.text == "1/10" })
|
||||
@@ -345,7 +347,8 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
|
||||
XCTAssertTrue(segmentedControl.isHidden)
|
||||
XCTAssertTrue(highResolutionButton.isHidden)
|
||||
XCTAssertEqual(bottomChrome.frame.minY - collectionView.frame.maxY, 56, accuracy: 0.5)
|
||||
XCTAssertEqual(collectionView.frame, controller.view.bounds)
|
||||
XCTAssertGreaterThan(collectionView.frame.maxY, bottomChrome.frame.minY)
|
||||
}
|
||||
|
||||
func testSelectionModeShowsAIRetouchOnLeftAndDeleteOnRight() async throws {
|
||||
@@ -459,17 +462,17 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
XCTAssertEqual(selectionCountLabel.text, "已选择 4 张照片")
|
||||
XCTAssertEqual(
|
||||
tipsLabel.text,
|
||||
"Tips:本次显示 3 类风格。每张照片生成「精修后 + 氛围感」2 个结果,第一张照片另生成所选封面结果。"
|
||||
"每张照片生成精修结果,氛围感可选;本次可免费生成 1 张封面"
|
||||
)
|
||||
XCTAssertFalse(tipsContainer.isHidden)
|
||||
XCTAssertEqual(tipsContainer.backgroundColor?.travelAlbumTestHexRGB, 0xEAF3FF)
|
||||
XCTAssertEqual(tipsContainer.backgroundColor?.travelAlbumTestHexRGB, 0xF4F8FF)
|
||||
XCTAssertEqual(tipsLabel.textColor.travelAlbumTestHexRGB, 0x385778)
|
||||
XCTAssertEqual(tipsContainer.layer.cornerRadius, 10)
|
||||
XCTAssertEqual(tipsContainer.layer.cornerRadius, 12)
|
||||
XCTAssertTrue(tipsContainer.isDescendant(of: collectionView))
|
||||
XCTAssertFalse(bottomBar.isDescendant(of: collectionView))
|
||||
XCTAssertEqual(cancelButton.configuration?.title, "取消")
|
||||
XCTAssertEqual(confirmButton.configuration?.title, "确定")
|
||||
XCTAssertEqual(cancelButton.bounds.width, confirmButton.bounds.width, accuracy: 0.5)
|
||||
XCTAssertEqual(cancelButton.currentTitle, "取消")
|
||||
XCTAssertEqual(confirmButton.currentTitle, "确定")
|
||||
XCTAssertLessThan(cancelButton.bounds.width, confirmButton.bounds.width)
|
||||
XCTAssertTrue(confirmButton.isEnabled)
|
||||
}
|
||||
|
||||
@@ -502,9 +505,9 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
} as? UICollectionView
|
||||
)
|
||||
let accessibleLabels = controller.view.allAccessibilityLabels()
|
||||
XCTAssertTrue(accessibleLabels.contains("原图精修"))
|
||||
XCTAssertTrue(accessibleLabels.contains("原图精修,必选"))
|
||||
XCTAssertTrue(accessibleLabels.contains("氛围感修图,选填"))
|
||||
XCTAssertTrue(accessibleLabels.contains("封面风格模板,赠送 · 不占精修张数"))
|
||||
XCTAssertTrue(accessibleLabels.contains("封面风格,赠送 · 不占额度"))
|
||||
|
||||
collectionView.scrollToItem(
|
||||
at: IndexPath(item: 0, section: 4),
|
||||
@@ -517,6 +520,13 @@ final class TravelAlbumDetailViewControllerTests: XCTestCase {
|
||||
$0.accessibilityIdentifier == "travelAlbum.aiRetouchRemainingQuotaLabel"
|
||||
} as? UILabel
|
||||
)
|
||||
let requiredQuotaLabel = try XCTUnwrap(
|
||||
controller.view.findSubview {
|
||||
$0.accessibilityIdentifier == "travelAlbum.aiRetouchRequiredQuotaLabel"
|
||||
} as? UILabel
|
||||
)
|
||||
XCTAssertEqual(requiredQuotaLabel.text, "预计消耗 4 张")
|
||||
XCTAssertEqual(requiredQuotaLabel.accessibilityLabel, "预计消耗4张修图额度")
|
||||
XCTAssertEqual(quotaLabel.text, "剩余 8 张")
|
||||
XCTAssertEqual(quotaLabel.accessibilityLabel, "剩余8张修图额度")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user