Fix cascading crash and remaining UI test failures

- Revert key-by-key UserDefaults iteration that removed system keys
  causing kAXErrorServerNotFound crashes; restore removePersistentDomain
  with explicit subscription key clearing
- Add .accessibilityElement(children: .contain) to UpgradeBannerView
  so subscribe button is discoverable by XCUITest
- Fix AllDayViewStylesTests to use coordinate-based tapping instead of
  button.isHittable/button.tap() for iOS 26 Liquid Glass compatibility
- Improve OnboardingTests with multiple swipe retries and label-based
  fallback for skip button

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-17 19:57:03 -06:00
parent 9157fd2577
commit 8845ccfd1b
4 changed files with 36 additions and 17 deletions

View File

@@ -29,22 +29,21 @@ final class AllDayViewStylesTests: BaseUITestCase {
settingsScreen.assertVisible()
settingsScreen.tapCustomizeTab()
// Try to find and tap the style button, scrolling if needed
// Try to find the style button, scrolling if needed
let button = customizeScreen.dayViewStyleButton(named: style)
if !button.waitForExistence(timeout: 2) || !button.isHittable {
// Scroll left multiple times to find styles further right
if !button.waitForExistence(timeout: 2) {
// Scroll left multiple times to find styles further right in horizontal scroll
for _ in 0..<5 {
app.swipeLeft()
if button.isHittable { break }
if button.waitForExistence(timeout: 1) { break }
}
}
if button.isHittable {
button.tap()
} else {
// Style button not found after scrolling skip but don't fail,
// as the main assertion is no-crash on the Day tab
if button.waitForExistence(timeout: 2) {
// Use coordinate tap for iOS 26 Liquid Glass compatibility
button.coordinate(withNormalizedOffset: CGVector(dx: 0.5, dy: 0.5)).tap()
}
// Skip but don't fail if button not found main assertion is no-crash
// Navigate to Day tab and verify the entry row still renders
tabBar.tapDay()