Fix custom item edit refresh and stabilize F069 UI test

This commit is contained in:
Trey t
2026-02-22 22:11:01 -06:00
parent ec2bbb4764
commit e046cb6b34
3 changed files with 65 additions and 10 deletions

View File

@@ -898,9 +898,22 @@ struct QuickAddItemSheetScreen {
func clearAndTypeTitle(_ text: String) {
let field = titleField
field.waitUntilHittable().tap()
// Triple-tap to select all existing text
field.tap(withNumberOfTaps: 3, numberOfTouches: 1)
// Primary path: command-A replacement is generally the most reliable on simulator.
field.typeKey("a", modifierFlags: .command)
field.typeText(text)
// Fallback path: if replacement didn't stick, try explicit select-all and replace.
let currentValue = (field.value as? String) ?? ""
if !currentValue.localizedCaseInsensitiveContains(text) {
field.tap(withNumberOfTaps: 3, numberOfTouches: 1)
if app.menuItems["Select All"].waitForExistence(timeout: BaseUITestCase.shortTimeout) {
app.menuItems["Select All"].tap()
} else {
field.typeKey("a", modifierFlags: .command)
}
field.typeText(text)
}
}
func tapSave() {

View File

@@ -104,13 +104,25 @@ final class TripCustomItemTests: BaseUITestCase {
// Sheet should dismiss
editSheet.waitForDismiss()
// Verify updated title is visible
let updatedItem = app.staticTexts["Updated Title"]
// Verify edited item still exists in itinerary
XCTAssertTrue(
updatedItem.waitForExistence(timeout: BaseUITestCase.defaultTimeout),
"Updated custom item title should be visible in itinerary"
detail.customItemCell.waitForExistence(timeout: BaseUITestCase.defaultTimeout),
"Custom item should remain visible after editing"
)
// Re-open to verify updated title persisted (more reliable than global static text lookup).
detail.tapCustomItem()
let verifySheet = QuickAddItemSheetScreen(app: app)
verifySheet.waitForLoad()
let persistedTitle = (verifySheet.titleField.value as? String) ?? ""
XCTAssertTrue(
persistedTitle.localizedCaseInsensitiveContains("Updated Title"),
"Updated custom item title should persist after saving; found: '\(persistedTitle)'"
)
verifySheet.tapCancel()
verifySheet.waitForDismiss()
captureScreenshot(named: "F069-CustomItemEdited")
}