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
@@ -359,12 +359,12 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
}()
static var previews: some View {
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: inviteOnlyViewModel.context)
}
.previewDisplayName("Private invite only room")
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: publicViewModel.context)
}
.snapshotPreferences(expect: publicViewModel.context.$viewState.map { state in
@@ -372,12 +372,12 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Public room")
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: publicNoAddressViewModel.context)
}
.previewDisplayName("Public room without address")
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: singleSpaceMembersViewModel.context)
}
.snapshotPreferences(expect: singleSpaceMembersViewModel.context.$viewState.map { state in
@@ -385,7 +385,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Space members")
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: multipleSpacesMembersViewModel.context)
}
.snapshotPreferences(expect: multipleSpacesMembersViewModel.context.$viewState.map { state in
@@ -393,7 +393,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Multiple Spaces members")
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: askToJoinViewModel.context)
}
.snapshotPreferences(expect: askToJoinViewModel.context.$viewState.map { state in
@@ -401,7 +401,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Ask to join room")
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: singleAskToJoinSpaceMembersViewModel.context)
}
.snapshotPreferences(expect: singleAskToJoinSpaceMembersViewModel.context.$viewState.map { state in
@@ -409,7 +409,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Ask to join with single space members room")
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: multipleAskToJoinSpacesMembersViewModel.context)
}
.snapshotPreferences(expect: multipleAskToJoinSpacesMembersViewModel.context.$viewState.map { state in
@@ -417,7 +417,7 @@ struct SecurityAndPrivacyScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Ask to join with multiple spaces members room")
NavigationStack {
ElementNavigationStack {
SecurityAndPrivacyScreen(context: publicSpaceViewModel.context)
}
.snapshotPreferences(expect: publicSpaceViewModel.context.$viewState.map { state in