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
@@ -173,7 +173,7 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview {
static let emptyBannedViewModel = makeViewModel(withBanned: false, isAdmin: false, initialMode: .members)
static var previews: some View {
NavigationStack {
ElementNavigationStack {
RoomMembersListScreen(context: viewModel.context)
}
.snapshotPreferences(expect: viewModel.context.$viewState.map { state in
@@ -181,7 +181,7 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Member")
NavigationStack {
ElementNavigationStack {
RoomMembersListScreen(context: invitesViewModel.context)
}
.snapshotPreferences(expect: invitesViewModel.context.$viewState.map { state in
@@ -189,7 +189,7 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Invites")
NavigationStack {
ElementNavigationStack {
RoomMembersListScreen(context: adminViewModel.context)
}
.snapshotPreferences(expect: adminViewModel.context.$viewState.map { state in
@@ -197,7 +197,7 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Admin: Members")
NavigationStack {
ElementNavigationStack {
RoomMembersListScreen(context: bannedViewModel.context)
}
.snapshotPreferences(expect: bannedViewModel.context.$viewState.map { state in
@@ -205,7 +205,7 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview {
})
.previewDisplayName("Admin: Banned")
NavigationStack {
ElementNavigationStack {
RoomMembersListScreen(context: emptyBannedViewModel.context)
.onAppear { emptyBannedViewModel.context.searchQuery = "Dan" }
}