Commit 045cba839a

045cba839a9fdb5b999e16d6f941d80bca5c9b15

parent: 39829bcd36

Verified · cmc

cmc <hello@cleberg.net> · 2026-09-22 18:50 UTC

live suite: wait for the edit sheet to close, not for Save

Save disappears the moment ProfileEditSheet swaps it for a
ProgressView, while model.working is true — before the request even
completes. waitForNonExistence on the button passed on a refusal too,
since the sheet stays open with Save gone and a ProgressView in its
place. Wait for the sheet's own navigation bar instead.

Layout: unified · split

gitbayUITests/LiveSmokeUITests.swift +2 −1
@@ -1294,8 +1294,9 @@ extension LiveSmokeUITests {
1294 .matching(identifier: "profile-edit-about").firstMatch.exists, 1294 .matching(identifier: "profile-edit-about").firstMatch.exists,
1295 "the sheet still edits the about text") 1295 "the sheet still edits the about text")
1296 save.tap() 1296 save.tap()
1297 XCTAssertTrue(save.waitForNonExistence(timeout: 15), 1297 XCTAssertTrue(app.navigationBars["Edit Profile"].waitForNonExistence(timeout: 15),
1298 "profile save did not dismiss the sheet — the server refused it") 1298 "profile save did not dismiss the sheet — the server refused it")
1299 XCTAssertFalse(save.exists, "the edit sheet is still on screen")
1299 1300
1300 // --- the about text is a file: edit it, or offer to create it --- 1301 // --- the about text is a file: edit it, or offer to create it ---
1301 let aboutAction = app.descendants(matching: .any).matching(NSPredicate( 1302 let aboutAction = app.descendants(matching: .any).matching(NSPredicate(