field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

commit 124919955d5a4493bd335974f68728fe719ec6cc
parent 85539f4be30deb45c8cd03cbd7216f29370510b5
Author: triesap <tyson@radroots.org>
Date:   Fri, 28 Aug 2026 18:43:39 +0000

test: bind completion to working overlay

- Use the non-virtualized Add progress overlay as the completion boundary.
- Require a proven start before accepting the overlay-disappeared terminal state.
- Materialize the terminal submit control through ordinary scrolling afterward.
- Remove terminal inference from virtualized status and form rows.

Diffstat:
MRadrootsUITests/RadrootsRemoteQualificationUITests.swift | 26+++-----------------------
1 file changed, 3 insertions(+), 23 deletions(-)

diff --git a/RadrootsUITests/RadrootsRemoteQualificationUITests.swift b/RadrootsUITests/RadrootsRemoteQualificationUITests.swift @@ -1086,13 +1086,7 @@ final class RadrootsRemoteQualificationUITests: XCTestCase { return nil } guard - waitForWorkToFinish( - app, - submit: submit, - status: status, - priorStatusLabel: priorStatusLabel, - priorSubmitValue: priorSubmitValue - ) + waitForWorkToFinish(app) else { XCTFail( "The Add submission did not reach a terminal local state; " @@ -1132,23 +1126,9 @@ final class RadrootsRemoteQualificationUITests: XCTestCase { } @MainActor - private func waitForWorkToFinish( - _ app: XCUIApplication, - submit: XCUIElement, - status: XCUIElement, - priorStatusLabel: String?, - priorSubmitValue: String? - ) -> Bool { + private func waitForWorkToFinish(_ app: XCUIApplication) -> Bool { let progress = app.descendants(matching: .any)["radroots.add.progress"] - let finished = NSPredicate { _, _ in - guard !progress.exists else { return false } - if status.exists, !status.label.isEmpty, status.label != priorStatusLabel { - return true - } - guard submit.exists else { return false } - let submitValue = submit.value as? String - return submitValue != priorSubmitValue && submitValue != "Working" - } + let finished = NSPredicate { _, _ in !progress.exists } let expectation = XCTNSPredicateExpectation(predicate: finished, object: app) return XCTWaiter.wait(for: [expectation], timeout: 180) == .completed }