Fix A11y tests (#5104)

* replace NavigationStack with ElementNavigationStack to allow the content to be rendered without a NavigationStack in a11y tests

* fix a11y tests

* update xcodeproject

* swiftformat fix

* use iOS 26.1 for CI

* use a wrapper to solve the issue for a11y tests

* ElementNavigationStack only uses the trick in DEBUG mode, and added a swiftlint rule to prevent the usage of NavigationStack
This commit is contained in:
Mauro
2026-02-13 16:45:58 +01:00
committed by GitHub
parent b11438e38d
commit 0e40cc7008
83 changed files with 254 additions and 180 deletions
@@ -107,7 +107,7 @@ struct AdvancedSettingsScreen_Previews: PreviewProvider, TestablePreview {
clientProxy: ClientProxyMock(.init()),
userIndicatorController: UserIndicatorControllerMock())
static var previews: some View {
NavigationStack {
ElementNavigationStack {
AdvancedSettingsScreen(context: viewModel.context)
}
}
@@ -96,7 +96,7 @@ struct DeactivateAccountScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = DeactivateAccountScreenViewModel(clientProxy: ClientProxyMock(.init()),
userIndicatorController: UserIndicatorControllerMock())
static var previews: some View {
NavigationStack {
ElementNavigationStack {
DeactivateAccountScreen(context: viewModel.context)
}
}
@@ -215,7 +215,7 @@ struct DeveloperOptionsScreen_Previews: PreviewProvider {
appHooks: AppHooks(),
clientProxy: ClientProxyMock(.init()))
static var previews: some View {
NavigationStack {
ElementNavigationStack {
DeveloperOptionsScreen(context: viewModel.context)
}
}
@@ -267,13 +267,13 @@ struct SettingsScreen_Previews: PreviewProvider, TestablePreview {
static let bugReportDisabledViewModel = makeViewModel(isBugReportServiceEnabled: false)
static var previews: some View {
NavigationStack {
ElementNavigationStack {
SettingsScreen(context: viewModel.context)
}
.snapshotPreferences(expect: viewModel.context.observe(\.viewState.accountSessionsListURL).map { $0 != nil })
.previewDisplayName("Default")
NavigationStack {
ElementNavigationStack {
SettingsScreen(context: bugReportDisabledViewModel.context)
}
.snapshotPreferences(expect: bugReportDisabledViewModel.context.observe(\.viewState.accountSessionsListURL).map { $0 != nil })
@@ -131,7 +131,7 @@ struct UserDetailsEditScreen_Previews: PreviewProvider, TestablePreview {
userIndicatorController: UserIndicatorControllerMock.default)
static var previews: some View {
NavigationStack {
ElementNavigationStack {
UserDetailsEditScreen(context: viewModel.context)
}
}