tests: target MealMoodUITests que recorre el onboarding completo
El bug de los pasos 5 y 6 era invisible a los tests unitarios: el contrato de datos estaba bien, lo que fallaba era que la vista se desmontaba antes de pintar el aha moment y el paywall. Hace falta recorrer la UI de verdad. Anade el target MealMoodUITests (solo simulador, sin firma) y un test que hace el onboarding entero en instalacion limpia y comprueba que Week Ready y el paywall aparecen antes de la Home. Los CTA del onboarding llevan ahora accessibilityIdentifier para que el test no dependa de los textos, que estan en 6 idiomas. Validado en los dos sentidos: pasa con el fix, y revirtiendo temporalmente markFinished: false falla en la asercion de Week Ready. Suite completa: 27 tests. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Ks8uUcMA9mjypVK7F2Pkt
This commit is contained in:
@@ -115,6 +115,7 @@ struct HomeView: View {
|
||||
}
|
||||
}
|
||||
}
|
||||
.accessibilityIdentifier("home_root")
|
||||
.toast(isShowing: $viewModel.showToast, message: viewModel.toastMessage)
|
||||
.navigationTitle("")
|
||||
.navigationBarTitleDisplayMode(.inline)
|
||||
|
||||
@@ -137,6 +137,7 @@ struct CalendarStepView: View {
|
||||
})
|
||||
|
||||
PrimaryButton(title: String(localized: "onboarding_continue"), action: onNext)
|
||||
.accessibilityIdentifier("onboarding_cta_calendar")
|
||||
}
|
||||
.padding(.horizontal, 24)
|
||||
.padding(.bottom, 40)
|
||||
|
||||
@@ -241,6 +241,7 @@ struct FirstDishesStepView: View {
|
||||
},
|
||||
isEnabled: true
|
||||
)
|
||||
.accessibilityIdentifier("onboarding_cta_first_dishes")
|
||||
.padding(.horizontal, 24)
|
||||
.padding(.top, 12)
|
||||
.padding(.bottom, 24)
|
||||
|
||||
@@ -38,6 +38,7 @@ struct MealWindowsStepView: View {
|
||||
.padding(.horizontal, 24)
|
||||
|
||||
PrimaryButton(title: String(localized: "onboarding_continue"), action: onNext)
|
||||
.accessibilityIdentifier("onboarding_cta_meal_windows")
|
||||
.padding(.horizontal, 24)
|
||||
.padding(.top, 8)
|
||||
.padding(.bottom, 40)
|
||||
|
||||
@@ -59,6 +59,7 @@ struct PaywallStepView: View {
|
||||
.font(.mealMoodSmall)
|
||||
.foregroundColor(.mealMoodTextSecondary)
|
||||
}
|
||||
.accessibilityIdentifier("onboarding_cta_paywall_skip")
|
||||
}
|
||||
.padding(.horizontal, 24)
|
||||
.padding(.bottom, 24)
|
||||
|
||||
@@ -26,6 +26,7 @@ struct WeekReadyStepView: View {
|
||||
.font(.mealMoodH1)
|
||||
.foregroundColor(.mealMoodTextPrimary)
|
||||
.multilineTextAlignment(.center)
|
||||
.accessibilityIdentifier("onboarding_week_ready_title")
|
||||
|
||||
Text(subtitleText)
|
||||
.font(.mealMoodBody)
|
||||
@@ -81,6 +82,7 @@ struct WeekReadyStepView: View {
|
||||
.foregroundColor(.mealMoodTextSecondary)
|
||||
}
|
||||
.buttonStyle(.plain)
|
||||
.accessibilityIdentifier("onboarding_cta_week_ready_skip")
|
||||
}
|
||||
}
|
||||
.padding(.horizontal, 24)
|
||||
|
||||
@@ -41,6 +41,7 @@ struct WeekendsStepView: View {
|
||||
.foregroundColor(.mealMoodTextSecondary)
|
||||
|
||||
PrimaryButton(title: String(localized: "onboarding_continue"), action: onNext)
|
||||
.accessibilityIdentifier("onboarding_cta_weekends")
|
||||
.padding(.horizontal, 24)
|
||||
.padding(.top, 8)
|
||||
.padding(.bottom, 40)
|
||||
|
||||
@@ -30,6 +30,7 @@ struct WelcomeStepView: View {
|
||||
Spacer()
|
||||
|
||||
PrimaryButton(title: String(localized: "onboarding_start"), icon: "✨", action: onNext)
|
||||
.accessibilityIdentifier("onboarding_cta_welcome")
|
||||
.padding(.horizontal, 24)
|
||||
.padding(.bottom, 40)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user