From 1594a5048bb52fdfa69e13290a58790d5e55f477 Mon Sep 17 00:00:00 2001 From: Mauro Romito Date: Mon, 23 Feb 2026 17:17:08 +0100 Subject: [PATCH] preview tests fully migrated to swift testing --- ElementX.xcodeproj/project.pbxproj | 75 +- .../Sources/GeneratedPreviewTests.swift | 641 ++++++++++++------ PreviewTests/Sources/PreviewTests.swift | 26 +- .../SupportingFiles/PreviewTests.xctestplan | 1 + PreviewTests/SupportingFiles/target.yml | 2 +- Tools/Sourcery/PreviewTests.stencil | 5 +- 6 files changed, 488 insertions(+), 262 deletions(-) diff --git a/ElementX.xcodeproj/project.pbxproj b/ElementX.xcodeproj/project.pbxproj index adc778da4..b0929ebcb 100644 --- a/ElementX.xcodeproj/project.pbxproj +++ b/ElementX.xcodeproj/project.pbxproj @@ -3,7 +3,7 @@ archiveVersion = 1; classes = { }; - objectVersion = 63; + objectVersion = 77; objects = { /* Begin PBXAggregateTarget section */ @@ -63,7 +63,6 @@ 074F741578307EF0179EE47C /* MapTilerConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A1F2AAA3F0F2B72D2FFE4D0 /* MapTilerConfiguration.swift */; }; 07756D532EFE33DD1FA258E5 /* GeoURITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A7ED2EF5BDBAD2A7DBC4636 /* GeoURITests.swift */; }; 07CC13C5729C24255348CBBD /* ElementCallWidgetDriver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 309AD8BAE6437C31BA7157BF /* ElementCallWidgetDriver.swift */; }; - 083E1494D119BAF7A1121D49 /* WaitingConfirmation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07D8A2B48572142D0A52A9E0 /* WaitingConfirmation.swift */; }; 0847D85F823B55A3E95D16CC /* RoomPreviewProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3D94852AD5BB376CBCC3544 /* RoomPreviewProxy.swift */; }; 08547E55DD3686A84550996D /* SeparatorMediaEventsTimelineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13F354AD441E2FD83DED89AF /* SeparatorMediaEventsTimelineView.swift */; }; 086D01E79C8E8D3F004FAF21 /* AudioPlayerProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC9104846487244648D32C6D /* AudioPlayerProtocol.swift */; }; @@ -74,10 +73,12 @@ 09713669577CDA8D012EE380 /* MatrixRustSDK in Frameworks */ = {isa = PBXBuildFile; productRef = 6647C55D93508C7CE9D954A5 /* MatrixRustSDK */; }; 09D3D7D115318CAD131B4FE7 /* ResolveVerifiedUserSendFailureScreenViewModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57084488B03BDB33C7B7CA0E /* ResolveVerifiedUserSendFailureScreenViewModelTests.swift */; }; 09E1A358EA4205480AEF4698 /* AdvancedSettingsScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = F229480685F30BCB96C439EC /* AdvancedSettingsScreen.swift */; }; + 0AB4FF7645175FF1F6E942CC /* DeferredFulfillment.swift in Sources */ = {isa = PBXBuildFile; fileRef = B91AD590B0B40718A0AA0C61 /* DeferredFulfillment.swift */; }; 0ACAA31FD0399CEEBA3ECC21 /* UserDetailsEditScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85149F56BA333619900E2410 /* UserDetailsEditScreenViewModelProtocol.swift */; }; 0AD8EF040A60D62F488C18B5 /* KnockRequestProxyMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7F957320D0EB7D7B4E30C79D /* KnockRequestProxyMock.swift */; }; 0AE0AB1952F186EB86719B4F /* HomeScreenRoomCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED044D00F2176681CC02CD54 /* HomeScreenRoomCell.swift */; }; 0B05A35FF5D1ED9E8A0B41A7 /* AuthenticationStartScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B65DDCF8E41759890355ACBC /* AuthenticationStartScreenViewModelProtocol.swift */; }; + 0B9436A91CFA658202400465 /* WaitingConfirmation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E21DC54FCC2A7F78532923F /* WaitingConfirmation.swift */; }; 0BAF83521871E69D222EE8E4 /* ClientBuilderHook.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AC0CD1CAFD3F8B057F9AEA5 /* ClientBuilderHook.swift */; }; 0BDA19079FD6E17C5AC62E22 /* RoomDetailsEditScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB06F22CFA34885B40976061 /* RoomDetailsEditScreen.swift */; }; 0BFA67AFD757EE2BA569836A /* ScrollViewAdapter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53482ECA4B6633961EC224F5 /* ScrollViewAdapter.swift */; }; @@ -611,7 +612,6 @@ 6A38D0A2BC3943A92D82576E /* EditRoomAddressScreenViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7B18089ED50324583BB2FB7 /* EditRoomAddressScreenViewModelProtocol.swift */; }; 6A54F52443EC52AC5CD772C0 /* JoinRoomScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 869A8A4632E511351BFE2EC4 /* JoinRoomScreen.swift */; }; 6A64546ABE648ED9E6DBB459 /* RemoteSettingsHook.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D186A6DB8FAC5C9D0E4D61 /* RemoteSettingsHook.swift */; }; - 6A916606A8B92FE8A990A219 /* XCTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85A1941B874A3BE9CDDF43EF /* XCTestCase.swift */; }; 6AB306367E56A6F6DFA0E2FF /* RoomSummaryProviderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F46E441BA50705E6CEC89FE0 /* RoomSummaryProviderTests.swift */; }; 6AD722DD92E465E56D2885AB /* BugReportScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA919F521E9F0EE3638AFC85 /* BugReportScreen.swift */; }; 6AEB650311F694A5702255C9 /* UserProfileScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5B4932E4EFBC8FAC10972CD /* UserProfileScreenCoordinator.swift */; }; @@ -1579,7 +1579,7 @@ 044E501B8331B339874D1B96 /* CompoundIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompoundIcon.swift; sourceTree = ""; }; 045253F9967A535EE5B16691 /* Label.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Label.swift; sourceTree = ""; }; 046C0D3F53B0B5EF0A1F5BEA /* RoomSummaryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomSummaryTests.swift; sourceTree = ""; }; - 048A21188AB19349D026BECD /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 048A21188AB19349D026BECD /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 04BB8DDE245ED86C489BA983 /* AccessibilityIdentifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessibilityIdentifiers.swift; sourceTree = ""; }; 04DF593C3F7AF4B2FBAEB05D /* FileManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileManager.swift; sourceTree = ""; }; 0516C69708D5CBDE1A8E77EC /* RoomDirectorySearchProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDirectorySearchProxyProtocol.swift; sourceTree = ""; }; @@ -1602,7 +1602,6 @@ 077D7C3BE199B6E5DDEC07EC /* AppCoordinatorStateMachine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppCoordinatorStateMachine.swift; sourceTree = ""; }; 07934EF08BB39353E4A94272 /* BlurEffectView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurEffectView.swift; sourceTree = ""; }; 07C6B0B087FE6601C3F77816 /* JoinedRoomProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinedRoomProxy.swift; sourceTree = ""; }; - 07D8A2B48572142D0A52A9E0 /* WaitingConfirmation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitingConfirmation.swift; sourceTree = ""; }; 0825EAFD47332DD459DE893F /* SessionDirectoriesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionDirectoriesTests.swift; sourceTree = ""; }; 08283301736A6FE9D558B2CB /* AppLockScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockScreenViewModelProtocol.swift; sourceTree = ""; }; 0833F51229E166BCA141D004 /* RoomRolesAndPermissionsFlowCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomRolesAndPermissionsFlowCoordinator.swift; sourceTree = ""; }; @@ -1664,7 +1663,7 @@ 128501375217576AF0FE3E92 /* RoomAttachmentPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomAttachmentPicker.swift; sourceTree = ""; }; 12B09A94C519227264A41208 /* RoomMembershipDetailsProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMembershipDetailsProxy.swift; sourceTree = ""; }; 12FD5280AF55AB7F50F8E47D /* preview_avatar_room.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = preview_avatar_room.jpg; sourceTree = ""; }; - 1304D9191300873EADA52D6E /* IntegrationTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = IntegrationTests.xctestplan; sourceTree = ""; }; + 1304D9191300873EADA52D6E /* IntegrationTests.xctestplan */ = {isa = PBXFileReference; path = IntegrationTests.xctestplan; sourceTree = ""; }; 130ED565A078F7E0B59D9D25 /* UNTextInputNotificationResponse+Creator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UNTextInputNotificationResponse+Creator.swift"; sourceTree = ""; }; 136F80A613B55BDD071DCEA5 /* JoinRoomScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = JoinRoomScreenModels.swift; sourceTree = ""; }; 13802897C7AFA360EA74C0B0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = ""; }; @@ -1685,7 +1684,7 @@ 16D09C79746BDCD9173EB3A7 /* RoomDetailsEditScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDetailsEditScreenModels.swift; sourceTree = ""; }; 16D353E10A64172D863769BF /* TombstonedAvatarImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TombstonedAvatarImage.swift; sourceTree = ""; }; 1715E3D7F53C0748AA50C91C /* PostHogAnalyticsClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PostHogAnalyticsClient.swift; sourceTree = ""; }; - 174E4AEF3DED300AA81046EC /* compound-ios */ = {isa = PBXFileReference; lastKnownFileType = folder; path = "compound-ios"; sourceTree = SOURCE_ROOT; }; + 174E4AEF3DED300AA81046EC /* compound-ios */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "compound-ios"; path = "compound-ios"; sourceTree = SOURCE_ROOT; }; 17A8AA0DFA06012A9DAB951E /* TimelineProxyMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineProxyMock.swift; sourceTree = ""; }; 17BAE25A0E9E9F2F1BBA8930 /* DeactivateAccountScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeactivateAccountScreenViewModel.swift; sourceTree = ""; }; 181CF280BC8E3F335AFCB4B8 /* RemotePreferenceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RemotePreferenceTests.swift; sourceTree = ""; }; @@ -1776,7 +1775,7 @@ 25E7E9B7FEAB6169D960C206 /* QRCodeLoginScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRCodeLoginScreenViewModelTests.swift; sourceTree = ""; }; 25F8664F1FB95AF3C4202478 /* PollFormScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollFormScreenCoordinator.swift; sourceTree = ""; }; 260004737C573A56FA01E86E /* Encodable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Encodable.swift; sourceTree = ""; }; - 267BB1D5B08A9511F894CB57 /* PreviewTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = PreviewTests.xctestplan; sourceTree = ""; }; + 267BB1D5B08A9511F894CB57 /* PreviewTests.xctestplan */ = {isa = PBXFileReference; path = PreviewTests.xctestplan; sourceTree = ""; }; 26B0A96B8FE4849227945067 /* VoiceMessageRecorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRecorder.swift; sourceTree = ""; }; 26EAAB54C6CE91D64B69A9F8 /* AppLockServiceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockServiceProtocol.swift; sourceTree = ""; }; 2711E5996016ABD6EAAEB58A /* LogLevel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LogLevel.swift; sourceTree = ""; }; @@ -1858,7 +1857,7 @@ 358528B29FA72ACFD0D9644B /* SpacesScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpacesScreenCoordinator.swift; sourceTree = ""; }; 35A057BA9BE0F079784CD061 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 35AFCF4C05DEED04E3DB1A16 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; - 36DA824791172B9821EACBED /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + 36DA824791172B9821EACBED /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 36FD673E24FBFCFDF398716A /* RoomMemberProxyMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomMemberProxyMock.swift; sourceTree = ""; }; 3747C96188856006F784BF49 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ko; path = ko.lproj/Localizable.stringsdict; sourceTree = ""; }; 37A63A59BFDDC494B1C20119 /* CallScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CallScreenViewModel.swift; sourceTree = ""; }; @@ -1976,7 +1975,7 @@ 4A2B5274C1D3D2999D643786 /* EncryptionResetPasswordScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptionResetPasswordScreenViewModelProtocol.swift; sourceTree = ""; }; 4A5B4CD611DE7E94F5BA87B2 /* AppLockTimerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockTimerTests.swift; sourceTree = ""; }; 4AB29A2D95D3469B5F016655 /* SecureBackupControllerMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureBackupControllerMock.swift; sourceTree = ""; }; - 4B1F71AC585827E6C416C15A /* AppIcon.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; path = AppIcon.icon; sourceTree = ""; }; + 4B1F71AC585827E6C416C15A /* AppIcon.icon */ = {isa = PBXFileReference; path = AppIcon.icon; sourceTree = ""; }; 4B2B564CA6570E1487A7C7CC /* SpaceRoomListProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpaceRoomListProxy.swift; sourceTree = ""; }; 4B2D4EEBE8C098BBADD10939 /* SecureBackupKeyBackupScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureBackupKeyBackupScreenCoordinator.swift; sourceTree = ""; }; 4B41FABA2B0AEF4389986495 /* LoginMode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginMode.swift; sourceTree = ""; }; @@ -2322,7 +2321,7 @@ 8D55702474F279D910D2D162 /* RoomStateEventStringBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomStateEventStringBuilder.swift; sourceTree = ""; }; 8D8169443E5AC5FF71BFB3DB /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cs.lproj/Localizable.strings; sourceTree = ""; }; 8DA1E8F287680C8ED25EDBAC /* NetworkMonitorMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkMonitorMock.swift; sourceTree = ""; }; - 8E088F2A1B9EC529D3221931 /* UITests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UITests.xctestplan; sourceTree = ""; }; + 8E088F2A1B9EC529D3221931 /* UITests.xctestplan */ = {isa = PBXFileReference; path = UITests.xctestplan; sourceTree = ""; }; 8E1584F8BCF407BB94F48F04 /* EncryptionResetPasswordScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptionResetPasswordScreen.swift; sourceTree = ""; }; 8EAF4A49F3ACD8BB8B0D2371 /* ClientSDKMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientSDKMock.swift; sourceTree = ""; }; 8F062DD2CCD95DC33528A16F /* KnockRequestProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KnockRequestProxy.swift; sourceTree = ""; }; @@ -2406,6 +2405,7 @@ 9CE3C90E487B255B735D73C8 /* RoomScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomScreenViewModel.swift; sourceTree = ""; }; 9CF1EE0AA78470C674554262 /* PillTextAttachment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PillTextAttachment.swift; sourceTree = ""; }; 9D3DA6959C041E212A718DD3 /* LinkNewDeviceScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LinkNewDeviceScreenViewModel.swift; sourceTree = ""; }; + 9E21DC54FCC2A7F78532923F /* WaitingConfirmation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WaitingConfirmation.swift; sourceTree = ""; }; 9E3B41C36800DD4558D7BDA7 /* VoiceMessageRoomPlaybackView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VoiceMessageRoomPlaybackView.swift; sourceTree = ""; }; 9E6D88E8AFFBF2C1D589C0FA /* UIConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIConstants.swift; sourceTree = ""; }; 9E8F4D7D61B80EBD5CB92F8A /* KnockedRoomProxyMock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KnockedRoomProxyMock.swift; sourceTree = ""; }; @@ -2474,7 +2474,7 @@ AAD8234D0E9C9B12BF9F240B /* LocationAnnotation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationAnnotation.swift; sourceTree = ""; }; AB07F03461023BC39C730922 /* PhishingDetector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhishingDetector.swift; sourceTree = ""; }; AB26D5444A4A7E095222DE8B /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.stringsdict"; sourceTree = ""; }; - AB389C38BD41EB3E47092CFB /* AccessibilityTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = AccessibilityTests.xctestplan; sourceTree = ""; }; + AB389C38BD41EB3E47092CFB /* AccessibilityTests.xctestplan */ = {isa = PBXFileReference; path = AccessibilityTests.xctestplan; sourceTree = ""; }; ABA4CF2F5B4F68D02E412004 /* ServerConfirmationScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerConfirmationScreenViewModelProtocol.swift; sourceTree = ""; }; AC0275CEE9CA078B34028BDF /* AppLockScreenViewModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppLockScreenViewModelTests.swift; sourceTree = ""; }; AC1DA29A5A041CC0BACA7CB0 /* MockImageCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockImageCache.swift; sourceTree = ""; }; @@ -2542,7 +2542,7 @@ B53AC78E49A297AC1D72A7CF /* AppMediator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMediator.swift; sourceTree = ""; }; B590BD4507D4F0A377FDE01A /* LoadableAvatarImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadableAvatarImage.swift; sourceTree = ""; }; B5D829FD8958376614504B18 /* TargetConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TargetConfiguration.swift; sourceTree = ""; }; - B61C339A2FDDBD067FF6635C /* ConfettiScene.scn */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = ConfettiScene.scn; sourceTree = ""; }; + B61C339A2FDDBD067FF6635C /* ConfettiScene.scn */ = {isa = PBXFileReference; path = ConfettiScene.scn; sourceTree = ""; }; B6404166CBF5CC88673FF9E2 /* RoomDetails.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomDetails.swift; sourceTree = ""; }; B65DDCF8E41759890355ACBC /* AuthenticationStartScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticationStartScreenViewModelProtocol.swift; sourceTree = ""; }; B682FE2C44C5E163E7023B05 /* CopyTextButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyTextButton.swift; sourceTree = ""; }; @@ -2575,7 +2575,7 @@ BA40B98B098B6F0371B750B3 /* TemplateScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemplateScreenModels.swift; sourceTree = ""; }; BA919F521E9F0EE3638AFC85 /* BugReportScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BugReportScreen.swift; sourceTree = ""; }; BB284643AF7AB131E307DCE0 /* AudioSessionProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioSessionProtocol.swift; sourceTree = ""; }; - BB576F4118C35E6B5124FA22 /* test_apple_image.heic */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_apple_image.heic; sourceTree = ""; }; + BB576F4118C35E6B5124FA22 /* test_apple_image.heic */ = {isa = PBXFileReference; path = test_apple_image.heic; sourceTree = ""; }; BB5B00A014307CE37B2812CD /* TimelineViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimelineViewModelProtocol.swift; sourceTree = ""; }; BB6ED50FE104992419310EEB /* NotificationHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationHandler.swift; sourceTree = ""; }; BB8BC4C791D0E88CFCF4E5DF /* ServerSelectionScreenCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerSelectionScreenCoordinator.swift; sourceTree = ""; }; @@ -2680,7 +2680,7 @@ CDB3227C7A74B734924942E9 /* RoomSummaryProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomSummaryProvider.swift; sourceTree = ""; }; CDE3F3911FF7CC639BDE5844 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/Localizable.strings; sourceTree = ""; }; CEE20623EB4A9B88FB29F2BA /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/SAS.strings; sourceTree = ""; }; - CEE41494C837AA403A06A5D9 /* UnitTests.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = UnitTests.xctestplan; sourceTree = ""; }; + CEE41494C837AA403A06A5D9 /* UnitTests.xctestplan */ = {isa = PBXFileReference; path = UnitTests.xctestplan; sourceTree = ""; }; CF19027E7FFA5E63D148873A /* CreateRoomScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CreateRoomScreenViewModel.swift; sourceTree = ""; }; CF847A34FC4C8C937CD39E08 /* LabsScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabsScreenViewModelProtocol.swift; sourceTree = ""; }; CFFA5E881D281810AB428EA3 /* RoomPowerLevelsProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomPowerLevelsProxy.swift; sourceTree = ""; }; @@ -2749,7 +2749,7 @@ DC0AEA686E425F86F6BA0404 /* UNNotification+Creator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UNNotification+Creator.swift"; sourceTree = ""; }; DC10CCC8D68B863E20660DBC /* MessageForwardingScreenViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageForwardingScreenViewModelProtocol.swift; sourceTree = ""; }; DC528B3764E3CF7FCFEF40E7 /* PollInteractionHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollInteractionHandler.swift; sourceTree = ""; }; - DCA2D836BD10303F37FAAEED /* test_voice_message.m4a */ = {isa = PBXFileReference; lastKnownFileType = file; path = test_voice_message.m4a; sourceTree = ""; }; + DCA2D836BD10303F37FAAEED /* test_voice_message.m4a */ = {isa = PBXFileReference; path = test_voice_message.m4a; sourceTree = ""; }; DCAC01A97A43BE07B9E94E43 /* ShareExtensionModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareExtensionModels.swift; sourceTree = ""; }; DCDAB580109C09A6AA97AF7E /* PollFormScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PollFormScreenTests.swift; sourceTree = ""; }; DCF239C619971FDE48132550 /* SecureBackupLogoutConfirmationScreenModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureBackupLogoutConfirmationScreenModels.swift; sourceTree = ""; }; @@ -2795,7 +2795,7 @@ E5272BC4A60B6AD7553BACA1 /* BlurHashDecode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlurHashDecode.swift; sourceTree = ""; }; E53BFB7E4F329621C844E8C3 /* AnalyticsPromptScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AnalyticsPromptScreen.swift; sourceTree = ""; }; E55B5EA766E89FF1F87C3ACB /* RoomNotificationSettingsProxyProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomNotificationSettingsProxyProtocol.swift; sourceTree = ""; }; - E5E7D4EE7CA295E5039FDA21 /* portrait_test_video.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = portrait_test_video.mp4; sourceTree = ""; }; + E5E7D4EE7CA295E5039FDA21 /* portrait_test_video.mp4 */ = {isa = PBXFileReference; path = portrait_test_video.mp4; sourceTree = ""; }; E5E94DCFEE803E5ABAE8ACCE /* KeychainControllerProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainControllerProtocol.swift; sourceTree = ""; }; E5F2B6443D1ED8602F328539 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ru; path = ru.lproj/Localizable.stringsdict; sourceTree = ""; }; E5FDFAA04174CC99FB66391C /* EditRoomAddressScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditRoomAddressScreenViewModel.swift; sourceTree = ""; }; @@ -2843,7 +2843,7 @@ ED0CBEAB5F796BEFBAF7BB6A /* VideoRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoRoomTimelineView.swift; sourceTree = ""; }; ED1D792EB82506A19A72C8DE /* RoomTimelineItemProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineItemProtocol.swift; sourceTree = ""; }; ED33988DA4FD4FC666800106 /* SessionVerificationScreenViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionVerificationScreenViewModel.swift; sourceTree = ""; }; - ED482057AE39D5C6D9C5F3D8 /* message.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = message.caf; sourceTree = ""; }; + ED482057AE39D5C6D9C5F3D8 /* message.caf */ = {isa = PBXFileReference; path = message.caf; sourceTree = ""; }; ED49073BB1C1FC649DAC2CCD /* LocationRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationRoomTimelineView.swift; sourceTree = ""; }; ED60E4D2CD678E1EBF16F77A /* BlockedUsersScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlockedUsersScreen.swift; sourceTree = ""; }; EDDE826EAB1BAB80C1104980 /* SpaceFlowCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SpaceFlowCoordinator.swift; sourceTree = ""; }; @@ -4550,7 +4550,7 @@ isa = PBXGroup; children = ( B91AD590B0B40718A0AA0C61 /* DeferredFulfillment.swift */, - 07D8A2B48572142D0A52A9E0 /* WaitingConfirmation.swift */, + 9E21DC54FCC2A7F78532923F /* WaitingConfirmation.swift */, ); path = TestUtilities; sourceTree = ""; @@ -7233,6 +7233,7 @@ EE40B0E16A55BD23ECBFFD22 /* XCRemoteSwiftPackageReference "matrix-rich-text-editor-swift" */, C89CF7729E028671C5DC461E /* XCLocalSwiftPackageReference "compound-ios" */, ); + preferredProjectObjectVersion = 77; projectDirPath = ""; projectRoot = ""; targets = ( @@ -7739,7 +7740,7 @@ 21AFEFB8CEFE56A3811A1F5B /* VoiceMessageCacheTests.swift in Sources */, 44BDD670FF9095ACE240A3A2 /* VoiceMessageMediaManagerTests.swift in Sources */, A3D7110C1E75E7B4A73BE71C /* VoiceMessageRecorderTests.swift in Sources */, - 083E1494D119BAF7A1121D49 /* WaitingConfirmation.swift in Sources */, + 0B9436A91CFA658202400465 /* WaitingConfirmation.swift in Sources */, 1443CEEE42491CF7CD8A146A /* XCTestCase.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -7748,9 +7749,9 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 0AB4FF7645175FF1F6E942CC /* DeferredFulfillment.swift in Sources */, 038AB2E86960FD240231D4C2 /* GeneratedPreviewTests.swift in Sources */, ED635D7F00FA07E94D3CE1E8 /* PreviewTests.swift in Sources */, - 6A916606A8B92FE8A990A219 /* XCTestCase.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -9144,7 +9145,9 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - OTHER_SWIFT_FLAGS = "-DRELEASE"; + OTHER_SWIFT_FLAGS = ( + "-DRELEASE", + ); PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.accessibility.tests"; PRODUCT_NAME = AccessibilityTests; SDKROOT = iphoneos; @@ -9163,7 +9166,9 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - OTHER_SWIFT_FLAGS = "-DDEBUG"; + OTHER_SWIFT_FLAGS = ( + "-DDEBUG", + ); PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.accessibility.tests"; PRODUCT_NAME = AccessibilityTests; SDKROOT = iphoneos; @@ -9185,7 +9190,9 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = "$(MARKETING_VERSION)"; - OTHER_SWIFT_FLAGS = "-DIS_NSE"; + OTHER_SWIFT_FLAGS = ( + "-DIS_NSE", + ); PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.nse"; PRODUCT_DISPLAY_NAME = "$(APP_DISPLAY_NAME)"; PRODUCT_NAME = NSE; @@ -9252,7 +9259,9 @@ "$(inherited)", "-ObjC", ); - OTHER_SWIFT_FLAGS = "-DIS_MAIN_APP"; + OTHER_SWIFT_FLAGS = ( + "-DIS_MAIN_APP", + ); PILLS_UT_TYPE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).pills"; PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = "$(APP_NAME)"; @@ -9282,7 +9291,9 @@ "$(inherited)", "-ObjC", ); - OTHER_SWIFT_FLAGS = "-DIS_MAIN_APP"; + OTHER_SWIFT_FLAGS = ( + "-DIS_MAIN_APP", + ); PILLS_UT_TYPE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER).pills"; PRODUCT_BUNDLE_IDENTIFIER = "$(BASE_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = "$(APP_NAME)"; @@ -9507,7 +9518,9 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - OTHER_SWIFT_FLAGS = "-DDEBUG"; + OTHER_SWIFT_FLAGS = ( + "-DDEBUG", + ); PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.ui.tests"; PRODUCT_NAME = UITests; SDKROOT = iphoneos; @@ -9526,7 +9539,9 @@ "@executable_path/Frameworks", "@loader_path/Frameworks", ); - OTHER_SWIFT_FLAGS = "-DRELEASE"; + OTHER_SWIFT_FLAGS = ( + "-DRELEASE", + ); PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.ui.tests"; PRODUCT_NAME = UITests; SDKROOT = iphoneos; @@ -9548,7 +9563,9 @@ "@executable_path/../../Frameworks", ); MARKETING_VERSION = "$(MARKETING_VERSION)"; - OTHER_SWIFT_FLAGS = "-DIS_NSE"; + OTHER_SWIFT_FLAGS = ( + "-DIS_NSE", + ); PRODUCT_BUNDLE_IDENTIFIER = "${BASE_BUNDLE_IDENTIFIER}.nse"; PRODUCT_DISPLAY_NAME = "$(APP_DISPLAY_NAME)"; PRODUCT_NAME = NSE; diff --git a/PreviewTests/Sources/GeneratedPreviewTests.swift b/PreviewTests/Sources/GeneratedPreviewTests.swift index f87416bf4..074fb44fb 100644 --- a/PreviewTests/Sources/GeneratedPreviewTests.swift +++ b/PreviewTests/Sources/GeneratedPreviewTests.swift @@ -4,1498 +4,1711 @@ // swiftlint:disable all // swiftformat:disable all -import XCTest +import Testing @testable import ElementX extension PreviewTests { // MARK: - PreviewProvider - func testAdvancedSettingsScreen() async throws { + @Test + func advancedSettingsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AdvancedSettingsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAnalyticsPromptScreen() async throws { + @Test + func analyticsPromptScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AnalyticsPromptScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAnalyticsSettingsScreen() async throws { + @Test + func analyticsSettingsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AnalyticsSettingsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAppLockScreen() async throws { + @Test + func appLockScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AppLockScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAppLockSetupBiometricsScreen() async throws { + @Test + func appLockSetupBiometricsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AppLockSetupBiometricsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAppLockSetupPINScreen() async throws { + @Test + func appLockSetupPINScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AppLockSetupPINScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAppLockSetupSettingsScreen() async throws { + @Test + func appLockSetupSettingsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AppLockSetupSettingsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAudioMediaEventsTimelineView() async throws { + @Test + func audioMediaEventsTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AudioMediaEventsTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAudioRoomTimelineView() async throws { + @Test + func audioRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AudioRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAuthenticationStartScreen() async throws { + @Test + func authenticationStartScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AuthenticationStartScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testAvatarHeaderView() async throws { + @Test + func avatarHeaderView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in AvatarHeaderView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testBadgeLabel() async throws { + @Test + func badgeLabel() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in BadgeLabel_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testBlockedUsersScreen() async throws { + @Test + func blockedUsersScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in BlockedUsersScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testBloomModifier() async throws { + @Test + func bloomModifier() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in BloomModifier_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testBugReportScreen() async throws { + @Test + func bugReportScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in BugReportScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testCallInviteRoomTimelineView() async throws { + @Test + func callInviteRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in CallInviteRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testCallNotificationRoomTimelineView() async throws { + @Test + func callNotificationRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in CallNotificationRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testChatsSpaceFilterCell() async throws { + @Test + func chatsSpaceFilterCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ChatsSpaceFilterCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testChatsSpaceFiltersScreen() async throws { + @Test + func chatsSpaceFiltersScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ChatsSpaceFiltersScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testCollapsibleRoomTimelineView() async throws { + @Test + func collapsibleRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in CollapsibleRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testCompletionSuggestion() async throws { + @Test + func completionSuggestion() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in CompletionSuggestion_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testComposerToolbar() async throws { + @Test + func composerToolbar() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ComposerToolbar_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testCopyTextButton() async throws { + @Test + func copyTextButton() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in CopyTextButton_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testCreateRoomSpaceSelectionSheet() async throws { + @Test + func createRoomSpaceSelectionSheet() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in CreateRoomSpaceSelectionSheet_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testCreateRoom() async throws { + @Test + func createRoom() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in CreateRoom_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testDeactivateAccountScreen() async throws { + @Test + func deactivateAccountScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in DeactivateAccountScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testDeclineAndBlockScreen() async throws { + @Test + func declineAndBlockScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in DeclineAndBlockScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testEditRoomAddressScreen() async throws { + @Test + func editRoomAddressScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in EditRoomAddressScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testElementTextFieldStyle() async throws { + @Test + func elementTextFieldStyle() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ElementTextFieldStyle_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testEmojiPickerScreenHeaderView() async throws { + @Test + func emojiPickerScreenHeaderView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in EmojiPickerScreenHeaderView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testEmojiPickerScreen() async throws { + @Test + func emojiPickerScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in EmojiPickerScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testEmoteRoomTimelineView() async throws { + @Test + func emoteRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in EmoteRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testEncryptedRoomTimelineView() async throws { + @Test + func encryptedRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in EncryptedRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testEncryptionResetPasswordScreen() async throws { + @Test + func encryptionResetPasswordScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in EncryptionResetPasswordScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testEncryptionResetScreen() async throws { + @Test + func encryptionResetScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in EncryptionResetScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testEstimatedWaveformView() async throws { + @Test + func estimatedWaveformView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in EstimatedWaveformView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testFileMediaEventsTimelineView() async throws { + @Test + func fileMediaEventsTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in FileMediaEventsTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testFileRoomTimelineView() async throws { + @Test + func fileRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in FileRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testFormButtonStyles() async throws { + @Test + func formButtonStyles() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in FormButtonStyles_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testFormattedBodyText() async throws { + @Test + func formattedBodyText() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in FormattedBodyText_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testFormattingToolbar() async throws { + @Test + func formattingToolbar() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in FormattingToolbar_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testFullscreenDialog() async throws { + @Test + func fullscreenDialog() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in FullscreenDialog_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testGlobalSearchScreenListRow() async throws { + @Test + func globalSearchScreenListRow() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in GlobalSearchScreenListRow_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testGlobalSearchScreen() async throws { + @Test + func globalSearchScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in GlobalSearchScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testHighlightedTimelineItemModifier() async throws { + @Test + func highlightedTimelineItemModifier() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in HighlightedTimelineItemModifier_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testHomeScreenEmptyStateView() async throws { + @Test + func homeScreenEmptyStateView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in HomeScreenEmptyStateView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testHomeScreenInviteCell() async throws { + @Test + func homeScreenInviteCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in HomeScreenInviteCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testHomeScreenKnockedCell() async throws { + @Test + func homeScreenKnockedCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in HomeScreenKnockedCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testHomeScreenNewSoundBanner() async throws { + @Test + func homeScreenNewSoundBanner() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in HomeScreenNewSoundBanner_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testHomeScreenRecoveryKeyConfirmationBanner() async throws { + @Test + func homeScreenRecoveryKeyConfirmationBanner() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in HomeScreenRecoveryKeyConfirmationBanner_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testHomeScreenRoomCell() async throws { + @Test + func homeScreenRoomCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in HomeScreenRoomCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testHomeScreen() async throws { + @Test + func homeScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in HomeScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testIdentityConfirmationScreen() async throws { + @Test + func identityConfirmationScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in IdentityConfirmationScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testIdentityConfirmedScreen() async throws { + @Test + func identityConfirmedScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in IdentityConfirmedScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testImageMediaEventsTimelineView() async throws { + @Test + func imageMediaEventsTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ImageMediaEventsTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testImageRoomTimelineView() async throws { + @Test + func imageRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ImageRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testInviteUsersScreenSelectedItem() async throws { + @Test + func inviteUsersScreenSelectedItem() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in InviteUsersScreenSelectedItem_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testInviteUsersScreen() async throws { + @Test + func inviteUsersScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in InviteUsersScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testJoinRoomByAddressView() async throws { + @Test + func joinRoomByAddressView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in JoinRoomByAddressView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testJoinRoomScreenSpace() async throws { + @Test + func joinRoomScreenSpace() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in JoinRoomScreenSpace_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testJoinRoomScreen() async throws { + @Test + func joinRoomScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in JoinRoomScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testJoinedMembersBadgeView() async throws { + @Test + func joinedMembersBadgeView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in JoinedMembersBadgeView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testKnockRequestCell() async throws { + @Test + func knockRequestCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in KnockRequestCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testKnockRequestsBannerView() async throws { + @Test + func knockRequestsBannerView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in KnockRequestsBannerView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testKnockRequestsListEmptyStateView() async throws { + @Test + func knockRequestsListEmptyStateView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in KnockRequestsListEmptyStateView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testKnockRequestsListScreen() async throws { + @Test + func knockRequestsListScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in KnockRequestsListScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLabsScreen() async throws { + @Test + func labsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LabsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLeaveSpaceRoomDetailsCell() async throws { + @Test + func leaveSpaceRoomDetailsCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LeaveSpaceRoomDetailsCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLeaveSpaceView() async throws { + @Test + func leaveSpaceView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LeaveSpaceView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLegalInformationScreen() async throws { + @Test + func legalInformationScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LegalInformationScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLinkNewDeviceScreen() async throws { + @Test + func linkNewDeviceScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LinkNewDeviceScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLoadableImage() async throws { + @Test + func loadableImage() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LoadableImage_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLocationMarkerView() async throws { + @Test + func locationMarkerView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LocationMarkerView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLocationRoomTimelineView() async throws { + @Test + func locationRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LocationRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLoginScreen() async throws { + @Test + func loginScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LoginScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testLongPressWithFeedback() async throws { + @Test + func longPressWithFeedback() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in LongPressWithFeedback_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testManageAuthorizedSpacesScreen() async throws { + @Test + func manageAuthorizedSpacesScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ManageAuthorizedSpacesScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testManageRoomMemberSheetView() async throws { + @Test + func manageRoomMemberSheetView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ManageRoomMemberSheetView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMapLibreStaticMapView() async throws { + @Test + func mapLibreStaticMapView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MapLibreStaticMapView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMatrixUserPermalink() async throws { + @Test + func matrixUserPermalink() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MatrixUserPermalink_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMediaEventsTimelineScreen() async throws { + @Test + func mediaEventsTimelineScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MediaEventsTimelineScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMediaUploadPreviewScreen() async throws { + @Test + func mediaUploadPreviewScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MediaUploadPreviewScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMentionSuggestionItemView() async throws { + @Test + func mentionSuggestionItemView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MentionSuggestionItemView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMessageComposerTextField() async throws { + @Test + func messageComposerTextField() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MessageComposerTextField_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMessageComposer() async throws { + @Test + func messageComposer() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MessageComposer_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMessageForwardingScreen() async throws { + @Test + func messageForwardingScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MessageForwardingScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testMessageText() async throws { + @Test + func messageText() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in MessageText_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testNoticeRoomTimelineView() async throws { + @Test + func noticeRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in NoticeRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testNotificationPermissionsScreen() async throws { + @Test + func notificationPermissionsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in NotificationPermissionsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testNotificationSettingsEditScreenRoomCell() async throws { + @Test + func notificationSettingsEditScreenRoomCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in NotificationSettingsEditScreenRoomCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testNotificationSettingsEditScreen() async throws { + @Test + func notificationSettingsEditScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in NotificationSettingsEditScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testNotificationSettingsScreen() async throws { + @Test + func notificationSettingsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in NotificationSettingsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPINTextField() async throws { + @Test + func pINTextField() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PINTextField_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPaginationIndicatorRoomTimelineView() async throws { + @Test + func paginationIndicatorRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PaginationIndicatorRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPillViewOnBubble() async throws { + @Test + func pillViewOnBubble() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PillViewOnBubble_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPillView() async throws { + @Test + func pillView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PillView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPinnedEventsTimelineScreen() async throws { + @Test + func pinnedEventsTimelineScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PinnedEventsTimelineScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPinnedItemsBannerView() async throws { + @Test + func pinnedItemsBannerView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PinnedItemsBannerView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPinnedItemsIndicatorView() async throws { + @Test + func pinnedItemsIndicatorView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PinnedItemsIndicatorView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPlaceholderAvatarImage() async throws { + @Test + func placeholderAvatarImage() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PlaceholderAvatarImage_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPlaceholderScreen() async throws { + @Test + func placeholderScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PlaceholderScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPlaybackSpeedButton() async throws { + @Test + func playbackSpeedButton() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PlaybackSpeedButton_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPollFormScreen() async throws { + @Test + func pollFormScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PollFormScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPollOptionView() async throws { + @Test + func pollOptionView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PollOptionView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPollRoomTimelineView() async throws { + @Test + func pollRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PollRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testPollView() async throws { + @Test + func pollView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in PollView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testQRCodeErrorView() async throws { + @Test + func qRCodeErrorView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in QRCodeErrorView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testQRCodeLoginScreen() async throws { + @Test + func qRCodeLoginScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in QRCodeLoginScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testReactionsSummaryView() async throws { + @Test + func reactionsSummaryView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ReactionsSummaryView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testReadMarkerRoomTimelineView() async throws { + @Test + func readMarkerRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ReadMarkerRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testReadReceiptCell() async throws { + @Test + func readReceiptCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ReadReceiptCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testReadReceiptsSummaryView() async throws { + @Test + func readReceiptsSummaryView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ReadReceiptsSummaryView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRedactedRoomTimelineView() async throws { + @Test + func redactedRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RedactedRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testReportContentScreen() async throws { + @Test + func reportContentScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ReportContentScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testReportRoomScreen() async throws { + @Test + func reportRoomScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ReportRoomScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testResolveVerifiedUserSendFailureScreen() async throws { + @Test + func resolveVerifiedUserSendFailureScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ResolveVerifiedUserSendFailureScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomAttachmentPicker() async throws { + @Test + func roomAttachmentPicker() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomAttachmentPicker_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomAvatarImage() async throws { + @Test + func roomAvatarImage() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomAvatarImage_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomChangePermissionsScreen() async throws { + @Test + func roomChangePermissionsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomChangePermissionsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomChangeRolesScreenRow() async throws { + @Test + func roomChangeRolesScreenRow() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomChangeRolesScreenRow_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomChangeRolesScreenSelectedItem() async throws { + @Test + func roomChangeRolesScreenSelectedItem() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomChangeRolesScreenSelectedItem_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomChangeRolesScreen() async throws { + @Test + func roomChangeRolesScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomChangeRolesScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomDetailsEditScreen() async throws { + @Test + func roomDetailsEditScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomDetailsEditScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomDetailsScreen() async throws { + @Test + func roomDetailsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomDetailsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomDirectorySearchCell() async throws { + @Test + func roomDirectorySearchCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomDirectorySearchCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomDirectorySearchScreen() async throws { + @Test + func roomDirectorySearchScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomDirectorySearchScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomHeaderView() async throws { + @Test + func roomHeaderView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomHeaderView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomInviterLabel() async throws { + @Test + func roomInviterLabel() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomInviterLabel_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomListFilterView() async throws { + @Test + func roomListFilterView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomListFilterView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomListFiltersEmptyStateView() async throws { + @Test + func roomListFiltersEmptyStateView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomListFiltersEmptyStateView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomListFiltersView() async throws { + @Test + func roomListFiltersView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomListFiltersView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomMemberDetailsScreen() async throws { + @Test + func roomMemberDetailsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomMemberDetailsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomMembersListMemberCell() async throws { + @Test + func roomMembersListMemberCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomMembersListMemberCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomMembersListScreen() async throws { + @Test + func roomMembersListScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomMembersListScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomNotificationSettingsCustomSectionView() async throws { + @Test + func roomNotificationSettingsCustomSectionView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomNotificationSettingsCustomSectionView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomNotificationSettingsScreen() async throws { + @Test + func roomNotificationSettingsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomNotificationSettingsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomNotificationSettingsUserDefinedScreen() async throws { + @Test + func roomNotificationSettingsUserDefinedScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomNotificationSettingsUserDefinedScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomPollsHistoryScreen() async throws { + @Test + func roomPollsHistoryScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomPollsHistoryScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomRolesAndPermissionsScreen() async throws { + @Test + func roomRolesAndPermissionsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomRolesAndPermissionsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomScreenFooterView() async throws { + @Test + func roomScreenFooterView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomScreenFooterView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomScreen() async throws { + @Test + func roomScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testRoomSelectionScreen() async throws { + @Test + func roomSelectionScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in RoomSelectionScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSFNumberedListView() async throws { + @Test + func sFNumberedListView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SFNumberedListView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSecureBackupKeyBackupScreen() async throws { + @Test + func secureBackupKeyBackupScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SecureBackupKeyBackupScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSecureBackupLogoutConfirmationScreen() async throws { + @Test + func secureBackupLogoutConfirmationScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SecureBackupLogoutConfirmationScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSecureBackupRecoveryKeyScreen() async throws { + @Test + func secureBackupRecoveryKeyScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SecureBackupRecoveryKeyScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSecureBackupScreen() async throws { + @Test + func secureBackupScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SecureBackupScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSecurityAndPrivacyScreen() async throws { + @Test + func securityAndPrivacyScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SecurityAndPrivacyScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSendInviteConfirmationView() async throws { + @Test + func sendInviteConfirmationView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SendInviteConfirmationView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSeparatorMediaEventsTimelineView() async throws { + @Test + func separatorMediaEventsTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SeparatorMediaEventsTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSeparatorRoomTimelineView() async throws { + @Test + func separatorRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SeparatorRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testServerConfirmationScreen() async throws { + @Test + func serverConfirmationScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ServerConfirmationScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testServerSelection() async throws { + @Test + func serverSelection() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ServerSelection_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSessionVerificationRequestDetailsView() async throws { + @Test + func sessionVerificationRequestDetailsView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SessionVerificationRequestDetailsView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSessionVerification() async throws { + @Test + func sessionVerification() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SessionVerification_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSettingsScreen() async throws { + @Test + func settingsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SettingsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testShimmerOverlay() async throws { + @Test + func shimmerOverlay() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ShimmerOverlay_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSoftLogoutScreen() async throws { + @Test + func softLogoutScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SoftLogoutScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpaceAddRoomsScreenSelectedItem() async throws { + @Test + func spaceAddRoomsScreenSelectedItem() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpaceAddRoomsScreenSelectedItem_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpaceAddRoomsScreen() async throws { + @Test + func spaceAddRoomsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpaceAddRoomsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpaceHeaderTopicSheetView() async throws { + @Test + func spaceHeaderTopicSheetView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpaceHeaderTopicSheetView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpaceHeaderView() async throws { + @Test + func spaceHeaderView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpaceHeaderView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpaceRemoveChildrenConfirmationView() async throws { + @Test + func spaceRemoveChildrenConfirmationView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpaceRemoveChildrenConfirmationView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpaceRoomCell() async throws { + @Test + func spaceRoomCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpaceRoomCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpaceScreen() async throws { + @Test + func spaceScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpaceScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpaceSettingsScreen() async throws { + @Test + func spaceSettingsScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpaceSettingsScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpacesAnnouncementSheetView() async throws { + @Test + func spacesAnnouncementSheetView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpacesAnnouncementSheetView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSpacesScreen() async throws { + @Test + func spacesScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SpacesScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSplashScreen() async throws { + @Test + func splashScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SplashScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testStackedAvatarsView() async throws { + @Test + func stackedAvatarsView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in StackedAvatarsView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testStartChatScreen() async throws { + @Test + func startChatScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in StartChatScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testStateRoomTimelineView() async throws { + @Test + func stateRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in StateRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testStaticLocationScreenViewer() async throws { + @Test + func staticLocationScreenViewer() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in StaticLocationScreenViewer_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testStickerRoomTimelineView() async throws { + @Test + func stickerRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in StickerRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSwipeRightAction() async throws { + @Test + func swipeRightAction() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SwipeRightAction_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testSwipeToReplyView() async throws { + @Test + func swipeToReplyView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in SwipeToReplyView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTextRoomTimelineView() async throws { + @Test + func textRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TextRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testThreadDecorator() async throws { + @Test + func threadDecorator() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ThreadDecorator_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineDeliveryStatusView() async throws { + @Test + func timelineDeliveryStatusView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineDeliveryStatusView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineItemBubbledStylerView() async throws { + @Test + func timelineItemBubbledStylerView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineItemBubbledStylerView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineItemDebugView() async throws { + @Test + func timelineItemDebugView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineItemDebugView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineItemMenu() async throws { + @Test + func timelineItemMenu() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineItemMenu_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineItemSendInfoLabel() async throws { + @Test + func timelineItemSendInfoLabel() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineItemSendInfoLabel_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineItemStyler() async throws { + @Test + func timelineItemStyler() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineItemStyler_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineMediaPreviewDetailsView() async throws { + @Test + func timelineMediaPreviewDetailsView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineMediaPreviewDetailsView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineMediaPreviewRedactConfirmationView() async throws { + @Test + func timelineMediaPreviewRedactConfirmationView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineMediaPreviewRedactConfirmationView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineReactionView() async throws { + @Test + func timelineReactionView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineReactionView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineReadReceiptsView() async throws { + @Test + func timelineReadReceiptsView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineReadReceiptsView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineReplyView() async throws { + @Test + func timelineReplyView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineReplyView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineStartRoomTimelineView() async throws { + @Test + func timelineStartRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineStartRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTimelineThreadSummaryView() async throws { + @Test + func timelineThreadSummaryView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TimelineThreadSummaryView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTombstonedAvatarImage() async throws { + @Test + func tombstonedAvatarImage() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TombstonedAvatarImage_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testToolbarButton() async throws { + @Test + func toolbarButton() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in ToolbarButton_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testTypingIndicatorView() async throws { + @Test + func typingIndicatorView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in TypingIndicatorView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testUnsupportedRoomTimelineView() async throws { + @Test + func unsupportedRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in UnsupportedRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testUserDetailsEditScreen() async throws { + @Test + func userDetailsEditScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in UserDetailsEditScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testUserIndicatorModalView() async throws { + @Test + func userIndicatorModalView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in UserIndicatorModalView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testUserIndicatorToastView() async throws { + @Test + func userIndicatorToastView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in UserIndicatorToastView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testUserProfileCell() async throws { + @Test + func userProfileCell() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in UserProfileCell_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testUserProfileScreen() async throws { + @Test + func userProfileScreen() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in UserProfileScreen_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVerificationBadge() async throws { + @Test + func verificationBadge() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VerificationBadge_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVideoMediaEventsTimelineView() async throws { + @Test + func videoMediaEventsTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VideoMediaEventsTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVideoRoomTimelineView() async throws { + @Test + func videoRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VideoRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVisualListItem() async throws { + @Test + func visualListItem() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VisualListItem_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVoiceMessageButton() async throws { + @Test + func voiceMessageButton() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VoiceMessageButton_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVoiceMessageMediaEventsTimelineView() async throws { + @Test + func voiceMessageMediaEventsTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VoiceMessageMediaEventsTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVoiceMessagePreviewComposer() async throws { + @Test + func voiceMessagePreviewComposer() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VoiceMessagePreviewComposer_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVoiceMessageRecordingButton() async throws { + @Test + func voiceMessageRecordingButton() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VoiceMessageRecordingButton_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVoiceMessageRecordingComposer() async throws { + @Test + func voiceMessageRecordingComposer() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VoiceMessageRecordingComposer_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVoiceMessageRecordingView() async throws { + @Test + func voiceMessageRecordingView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VoiceMessageRecordingView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVoiceMessageRoomPlaybackView() async throws { + @Test + func voiceMessageRoomPlaybackView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VoiceMessageRoomPlaybackView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testVoiceMessageRoomTimelineView() async throws { + @Test + func voiceMessageRoomTimelineView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in VoiceMessageRoomTimelineView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) } } - func testWaveformCursorView() async throws { + @Test + func waveformCursorView() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in WaveformCursorView_Previews._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index) diff --git a/PreviewTests/Sources/PreviewTests.swift b/PreviewTests/Sources/PreviewTests.swift index db29609a4..9e524b926 100644 --- a/PreviewTests/Sources/PreviewTests.swift +++ b/PreviewTests/Sources/PreviewTests.swift @@ -10,10 +10,11 @@ import Combine @testable import ElementX @testable import SnapshotTesting import SwiftUI -import XCTest +import Testing +@Suite @MainActor -class PreviewTests: XCTestCase { +struct PreviewTests { private struct SnapshotDevice { let name: String let device: String @@ -28,9 +29,7 @@ class PreviewTests: XCTestCase { .init(name: "iPad", device: "iPad")] private var recordMode: SnapshotTestingConfiguration.Record = .missing - override func setUp() { - super.setUp() - + init() { if ProcessInfo().environment["RECORD_FAILURES"].map(Bool.init) == true { recordMode = .failed } @@ -59,7 +58,10 @@ class PreviewTests: XCTestCase { // MARK: - Snapshots - func assertSnapshots(matching preview: _Preview, testName: String = #function, step: Int) async throws { + func assertSnapshots(matching preview: _Preview, + step: Int, + testName: String = #function, + sourceLocation: SourceLocation = #_sourceLocation) async throws { let preferences = SnapshotPreferences() let preferenceReadingView = preview.content @@ -82,7 +84,7 @@ class PreviewTests: XCTestCase { break } - var sanitizedSuiteName = String(testName.suffix(testName.count - "test".count).dropLast(2)) + var sanitizedSuiteName = String(testName.dropLast(2)) sanitizedSuiteName = sanitizedSuiteName.prefix(1).lowercased() + sanitizedSuiteName.dropFirst() for snapshotDevice in snapshotDevices { @@ -112,7 +114,7 @@ class PreviewTests: XCTestCase { testName: sanitizedSuiteName, traits: traits, preferences: preferences) { - XCTFail(failure) + Issue.record(Comment(rawValue: failure), sourceLocation: sourceLocation) } } } @@ -152,14 +154,6 @@ class PreviewTests: XCTestCase { testName: testName) } } - - private func wait(for duration: TimeInterval) { - let expectation = XCTestExpectation(description: "Wait") - DispatchQueue.main.asyncAfter(deadline: .now() + duration) { - expectation.fulfill() - } - _ = XCTWaiter.wait(for: [expectation], timeout: duration + 1) - } } private class SnapshotPreferences: @unchecked Sendable { diff --git a/PreviewTests/SupportingFiles/PreviewTests.xctestplan b/PreviewTests/SupportingFiles/PreviewTests.xctestplan index 51bb5f4e7..a20468b30 100644 --- a/PreviewTests/SupportingFiles/PreviewTests.xctestplan +++ b/PreviewTests/SupportingFiles/PreviewTests.xctestplan @@ -43,6 +43,7 @@ }, "testTargets" : [ { + "parallelizable" : false, "target" : { "containerPath" : "container:ElementX.xcodeproj", "identifier" : "7A17BE29BAC81ADBAC6349D9", diff --git a/PreviewTests/SupportingFiles/target.yml b/PreviewTests/SupportingFiles/target.yml index 87b11b8cd..ef1eb282c 100644 --- a/PreviewTests/SupportingFiles/target.yml +++ b/PreviewTests/SupportingFiles/target.yml @@ -49,4 +49,4 @@ targets: excludes: - "**/__Snapshots__/**" - path: ../SupportingFiles - - path: ../../ElementX/Sources/Other/Extensions/XCTestCase.swift + - path: ../../UnitTests/Sources/TestUtilities/DeferredFulfillment.swift diff --git a/Tools/Sourcery/PreviewTests.stencil b/Tools/Sourcery/PreviewTests.stencil index 9397066f9..a4d23b096 100644 --- a/Tools/Sourcery/PreviewTests.stencil +++ b/Tools/Sourcery/PreviewTests.stencil @@ -1,7 +1,7 @@ // swiftlint:disable all // swiftformat:disable all -import XCTest +import Testing @testable import ElementX {% if argument.mainTarget %} @testable import {{ argument.mainTarget }} @@ -26,7 +26,8 @@ extension PreviewTests { // MARK: - PreviewProvider {% for type in types.types where (type.implements.TestablePreview or type.based.TestablePreview or type|annotated:"TestablePreview") and type.name != "TestablePreview" %} - func test{{ type.name|replace:"_Previews", "" }}() async throws { + @Test + func {{ type.name|replace:"_Previews", ""| lowerFirstLetter }}() async throws { AppSettings.resetAllSettings() // Ensure this test's previews start with fresh settings. for (index, preview) in {{ type.name }}._allPreviews.enumerated() { try await assertSnapshots(matching: preview, step: index)