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 0a8c572701d849e38cb1c71cff501b9412595e77
parent 0aa1f30692078773067c298b6a530497f50d7abf
Author: triesap <tyson@radroots.org>
Date:   Fri, 28 Aug 2026 20:12:30 +0000

test: traverse the visible Me settings sheet

- wait for the governed Me sheet before reading identity evidence
- scroll its own collection view at accessibility content size
- stop before tapping when the Settings action remains unavailable
- retain public-key evidence through ordinary semantic navigation

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

diff --git a/RadrootsUITests/RadrootsRemoteQualificationUITests.swift b/RadrootsUITests/RadrootsRemoteQualificationUITests.swift @@ -618,11 +618,19 @@ final class RadrootsRemoteQualificationUITests: XCTestCase { XCTAssertTrue(account.waitForExistence(timeout: 10)) account.tap() + let meSheet = app.descendants(matching: .any)["radroots.support.me.sheet"] + guard meSheet.waitForExistence(timeout: 10) else { + throw QualificationError.missingProductSurface + } + let meList = meSheet.descendants(matching: .collectionView).firstMatch let settings = app.descendants(matching: .any)["radroots.support.settings"] - for _ in 0..<5 where !settings.exists { - app.swipeUp() + for _ in 0..<8 where !settings.exists { + meList.swipeUp() + } + guard settings.waitForExistence(timeout: 20) else { + XCTFail("Settings was unavailable through the visible Me sheet") + throw QualificationError.missingProductSurface } - XCTAssertTrue(settings.waitForExistence(timeout: 20)) settings.tap() let publicKey = app.descendants(matching: .any)[