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
@@ -201,14 +201,14 @@ struct RoomScreen_Previews: PreviewProvider, TestablePreview {
static let tombstonedViewModels = makeViewModels(hasSuccessor: true)
static var previews: some View {
NavigationStack {
ElementNavigationStack {
RoomScreen(context: viewModels.room.context,
timelineContext: viewModels.timeline.context,
composerToolbar: ComposerToolbar.mock())
}
.previewDisplayName("Normal")
NavigationStack {
ElementNavigationStack {
RoomScreen(context: readOnlyViewModels.room.context,
timelineContext: readOnlyViewModels.timeline.context,
composerToolbar: ComposerToolbar.mock())
@@ -216,7 +216,7 @@ struct RoomScreen_Previews: PreviewProvider, TestablePreview {
.previewDisplayName("Read-only")
.snapshotPreferences(expect: readOnlyViewModels.room.context.$viewState.map { !$0.canSendMessage })
NavigationStack {
ElementNavigationStack {
RoomScreen(context: tombstonedViewModels.room.context,
timelineContext: tombstonedViewModels.timeline.context,
composerToolbar: ComposerToolbar.mock())
@@ -171,7 +171,7 @@ struct SwipeRightAction_Previews: PreviewProvider, TestablePreview {
@State private var isPresentingSheet = false
var body: some View {
NavigationStack {
ElementNavigationStack {
ScrollView {
VStack(alignment: .leading, spacing: 2) {
Text("This is a message from somebody with a couple of lines of text.")