commit d22d42d4f4ec9526fb8781f86363672c98fcde00
parent df3a9a82c55ef4fbcc691467d54f7247b24e9194
Author: triesap <tyson@radroots.org>
Date: Fri, 28 Aug 2026 18:04:09 +0000
test: close persona settings before add flows
- dismiss the ordinary account sheet after reading each public identity
- keep Add navigation on visible semantic buttons at accessibility text size
- record the exact forward-repair commit in deterministic result evidence
- validate repair ancestry before starting the remotely bound persona run
Diffstat:
2 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/RadrootsUITests/RadrootsRemoteQualificationUITests.swift b/RadrootsUITests/RadrootsRemoteQualificationUITests.swift
@@ -633,6 +633,16 @@ final class RadrootsRemoteQualificationUITests: XCTestCase {
else {
throw QualificationError.invalidPublicKey
}
+ let back = app.navigationBars.buttons["Me"].firstMatch
+ XCTAssertTrue(back.waitForExistence(timeout: 10))
+ back.tap()
+ let done = app.navigationBars.buttons["Done"].firstMatch
+ XCTAssertTrue(done.waitForExistence(timeout: 10))
+ done.tap()
+ XCTAssertTrue(
+ app.descendants(matching: .any)["radroots.support.me.sheet"]
+ .waitForNonExistence(timeout: 10)
+ )
return value
}
diff --git a/scripts/xcode.sh b/scripts/xcode.sh
@@ -207,10 +207,19 @@ case "$operation" in
source_commit=$(git rev-parse HEAD)
source_tree=$(git rev-parse 'HEAD^{tree}')
upstream=$(git rev-parse '@{upstream}')
+ persona_repair_commit=${RADROOTS_IOS_UI_TEST_FORWARD_REPAIR_COMMIT:-}
if [[ "$source_commit" != "$upstream" ]]; then
echo "error: persona qualification source is not equal to its configured upstream" >&2
exit 1
fi
+ if [[ -n "$persona_repair_commit" ]]; then
+ if [[ ! "$persona_repair_commit" =~ ^[0-9a-f]{40}$ ]] || \
+ ! git merge-base --is-ancestor "$persona_repair_commit" "$source_commit"
+ then
+ echo "error: persona forward-repair commit is invalid" >&2
+ exit 1
+ fi
+ fi
python3 scripts/local-social-fixture.py verify-persona-fixture \
--fixture "$persona_fixture" \
--fixture-schema test-fixtures/local-social-personas.v1.schema.json \
@@ -289,7 +298,7 @@ case "$operation" in
exit "$test_status"
fi
if [[ "$scenario" == persona ]]; then
- python3 scripts/local-social-fixture.py "$evidence_command" \
+ persona_result_command=(python3 scripts/local-social-fixture.py "$evidence_command" \
--fixture "$persona_fixture" \
--fixture-schema test-fixtures/local-social-personas.v1.schema.json \
--result-schema test-fixtures/local-social-persona-results.v1.schema.json \
@@ -299,7 +308,11 @@ case "$operation" in
--source-commit "$source_commit" \
--source-tree "$source_tree" \
--run-id "$qualification_run_id" \
- --simulator-id "$simulator_id"
+ --simulator-id "$simulator_id")
+ if [[ -n "$persona_repair_commit" ]]; then
+ persona_result_command+=(--forward-repair-commit "$persona_repair_commit")
+ fi
+ "${persona_result_command[@]}"
else
python3 scripts/local-social-fixture.py "$evidence_command" --evidence "$evidence"
fi