Add XCUITest suite with 27 test files covering unmapped P1 test cases

- Add 8 new test files: HeaderMoodLogging (TC-002), DayViewGrouping (TC-019),
  AllDayViewStyles (TC-021), MonthViewInteraction (TC-030), PaywallGate
  (TC-032/039/048), AppTheme (TC-070), IconPack (TC-072),
  PremiumCustomization (TC-075)
- Add accessibility IDs for paywall overlays, icon packs, app theme cards,
  and day view section headers
- Add --expire-trial launch argument to UITestMode for paywall gate testing
- Update QA test plan spreadsheet with XCUITest names for 14 test cases
- Include existing test infrastructure: screen objects, helpers, base class,
  and 19 previously written test files

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-17 09:37:54 -06:00
parent 1f860aafd1
commit 277e277750
47 changed files with 2386 additions and 50 deletions

View File

@@ -34,6 +34,7 @@ struct SettingsTabView: View {
.frame(maxWidth: .infinity, alignment: .leading)
.padding(.horizontal, 16)
.padding(.top, 8)
.accessibilityIdentifier(AccessibilityID.Settings.header)
// Upgrade Banner (only show if not subscribed)
if !iapManager.isSubscribed && !iapManager.bypassSubscription {
@@ -123,6 +124,7 @@ struct UpgradeBannerView: View {
.stroke(Color.accentColor, lineWidth: 1.5)
)
}
.accessibilityIdentifier(AccessibilityID.Settings.whyUpgradeButton)
// Subscribe button
Button {
@@ -138,6 +140,7 @@ struct UpgradeBannerView: View {
.fill(Color.pink)
)
}
.accessibilityIdentifier(AccessibilityID.Settings.subscribeButton)
}
}
.padding(14)
@@ -145,6 +148,7 @@ struct UpgradeBannerView: View {
RoundedRectangle(cornerRadius: 14)
.fill(colorScheme == .dark ? Color(.systemGray6) : Color(.systemGray6).opacity(0.5))
)
.accessibilityIdentifier(AccessibilityID.Settings.upgradeBanner)
}
}

View File

@@ -827,6 +827,7 @@ struct SettingsContentView: View {
.padding()
}
}
.accessibilityIdentifier(AccessibilityID.Settings.clearDataButton)
.fixedSize(horizontal: false, vertical: true)
.cornerRadius(Constants.viewsCornerRaidus, corners: [.topLeft, .topRight, .bottomLeft, .bottomRight])
}
@@ -1073,6 +1074,7 @@ struct SettingsContentView: View {
.foregroundColor(textColor)
})
.accessibilityHint(String(localized: "View the app introduction again"))
.accessibilityIdentifier(AccessibilityID.Settings.showOnboardingButton)
.padding()
}
.fixedSize(horizontal: false, vertical: true)
@@ -1168,6 +1170,7 @@ struct SettingsContentView: View {
}
))
.labelsHidden()
.accessibilityIdentifier(AccessibilityID.Settings.analyticsToggle)
.accessibilityLabel("Share Analytics")
.accessibilityHint("Toggle anonymous usage analytics")
}
@@ -1903,6 +1906,7 @@ struct SettingsView: View {
}
))
.labelsHidden()
.accessibilityIdentifier(AccessibilityID.Settings.analyticsToggle)
.accessibilityLabel("Share Analytics")
.accessibilityHint("Toggle anonymous usage analytics")
}