commit d9b521d738d0ce7fd23a3c95a235ba047bcb0b55
parent ff66524327b7f83ba4d04a55e97c1e5016b9d84b
Author: triesap <tyson@radroots.org>
Date: Sat, 29 Aug 2026 01:31:25 +0000
ios: harden persona settings navigation
- Require the visible Settings row to become hittable before tapping it.
- Confirm the native identity destination before reading its public key.
- Preserve ordinary Me-sheet navigation and generated identity custody.
- Compile the complete iOS test target with build-for-testing.
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/RadrootsUITests/RadrootsRemoteQualificationUITests.swift b/RadrootsUITests/RadrootsRemoteQualificationUITests.swift
@@ -662,12 +662,18 @@ final class RadrootsRemoteQualificationUITests: XCTestCase {
XCTFail("Settings was unavailable through the visible Me sheet")
throw QualificationError.missingProductSurface
}
- settings.tap()
-
let publicKey = app.descendants(matching: .any)[
"radroots.settings.identity.public_key"
]
- XCTAssertTrue(publicKey.waitForExistence(timeout: 10))
+ guard waitUntilHittable(settings, timeout: 10) else {
+ XCTFail("Settings did not become hittable through the visible Me sheet")
+ throw QualificationError.missingProductSurface
+ }
+ settings.tap()
+ guard publicKey.waitForExistence(timeout: 10) else {
+ XCTFail("Settings did not present the native identity public key")
+ throw QualificationError.missingProductSurface
+ }
guard let value = publicKey.value as? String,
value.range(of: "^[0-9a-f]{64}$", options: .regularExpression) != nil
else {