Preview Tests (#1768)

* preview testing

* removed some views that are not really testabl in UnitTests and improved other tests
This commit is contained in:
Mauro 2023-09-20 17:33:31 +02:00 committed by GitHub
parent 612a28b7e2
commit 9d91cd4fc0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
294 changed files with 1312 additions and 121 deletions

View File

@ -47,9 +47,6 @@ cyclomatic_complexity:
nesting:
type_level:
warning: 5
type_name:
allowed_symbols: "_"
custom_rules:
print_deprecation:

View File

@ -171,6 +171,7 @@
36AC963F2F04069B7FF1AA0C /* UIConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E6D88E8AFFBF2C1D589C0FA /* UIConstants.swift */; };
36AD4DD4C798E22584ED3200 /* Version in Frameworks */ = {isa = PBXBuildFile; productRef = A05AF81DDD14AD58CB0E1B9B /* Version */; };
36CD6E11B37396E14F032CB6 /* Emojibase in Frameworks */ = {isa = PBXBuildFile; productRef = C05729B1684C331F5FFE9232 /* Emojibase */; };
377980ABF16525114E72DDE2 /* Prefire in Frameworks */ = {isa = PBXBuildFile; productRef = 9B68DE8678BF67D4612BCC16 /* Prefire */; };
37D789F24199B32E3FD1AA7B /* FileRoomTimelineItemContent.swift in Sources */ = {isa = PBXBuildFile; fileRef = 216F0DDC98F2A2C162D09C28 /* FileRoomTimelineItemContent.swift */; };
383055C6ABE5BE058CEE1DDB /* WelcomeScreenScreenCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 57FE5EF0AFFE360C66420AAE /* WelcomeScreenScreenCoordinator.swift */; };
38546A6010A2CF240EC9AF73 /* BindableState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EA1D2CBAEA5D0BD00B90D1B /* BindableState.swift */; };
@ -727,6 +728,7 @@
DFF7D6A6C26DDD40D00AE579 /* target.yml in Resources */ = {isa = PBXBuildFile; fileRef = F012CB5EE3F2B67359F6CC52 /* target.yml */; };
E0A4DCA633D174EB43AD599F /* BackgroundTaskProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CA028DCD4157F9A1F999827 /* BackgroundTaskProtocol.swift */; };
E0B6A569AC3E81D233B43D60 /* SettingsScreenViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E625B0EB2F86B37C14EF7E6 /* SettingsScreenViewModel.swift */; };
E0FB26262689F04D66A949D7 /* TestablePreview.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1E227F34BE43B08E098796E /* TestablePreview.swift */; };
E14E469CD97550D0FC58F3CA /* CancellableTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE52983FAFB4E0998C00EE8A /* CancellableTask.swift */; };
E1DF24D085572A55C9758A2D /* Bundle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6E89E530A8E92EC44301CA1 /* Bundle.swift */; };
E1F446C6B78A3A0FEA15079C /* UnsupportedRoomTimelineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2AC3C656E960E15B5905E05 /* UnsupportedRoomTimelineView.swift */; };
@ -1671,6 +1673,7 @@
93A549135E6C027A0D823BFE /* DeviceKit in Frameworks */,
6F26CBC84AE87EB4068D398B /* DTCoreText in Frameworks */,
0E08BB72B2258652CF501A8B /* LRUCache in Frameworks */,
377980ABF16525114E72DDE2 /* Prefire in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -4109,6 +4112,7 @@
385D4C28F9DC5CF53BD9ECDB /* DeviceKit */,
593FBBF394712F2963E98A0B /* DTCoreText */,
78B28D75FF7AF8E6146DEE2A /* LRUCache */,
9B68DE8678BF67D4612BCC16 /* Prefire */,
);
productName = NSE;
productReference = 0D8F620C8B314840D8602E3F /* NSE.appex */;
@ -4400,6 +4404,7 @@
ECA636DAF071C611FDC2BB57 /* Strings+Untranslated.swift in Sources */,
6EC7A40A537CFB3D526A111C /* Strings.swift in Sources */,
719E7AAD1F8E68F68F30FECD /* Task.swift in Sources */,
E0FB26262689F04D66A949D7 /* TestablePreview.swift in Sources */,
DDB47D29C6865669288BF87C /* UIFont+AttributedStringBuilder.m in Sources */,
281BED345D59A9A6A99E9D98 /* UNNotificationContent.swift in Sources */,
518C93DC6516D3D018DE065F /* UNNotificationRequest.swift in Sources */,
@ -5725,7 +5730,7 @@
repositoryURL = "https://github.com/nicklockwood/GZIP";
requirement = {
kind = upToNextMinorVersion;
minimumVersion = 1.3.1;
minimumVersion = 1.3.0;
};
};
80B898A3AD2AC63F3ABFC218 /* XCRemoteSwiftPackageReference "matrix-rust-components-swift" */ = {
@ -6029,6 +6034,11 @@
package = 701C7BEF8F70F7A83E852DCC /* XCRemoteSwiftPackageReference "GZIP" */;
productName = GZIP;
};
9B68DE8678BF67D4612BCC16 /* Prefire */ = {
isa = XCSwiftPackageProductDependency;
package = 22E7BA2ED466B74739AB8567 /* XCRemoteSwiftPackageReference "Prefire" */;
productName = Prefire;
};
9C73F37731C9FDED1BB24C1C /* Collections */ = {
isa = XCSwiftPackageProductDependency;
package = F76A08D0EA29A07A54F4EB4D /* XCRemoteSwiftPackageReference "swift-collections" */;

View File

@ -26,7 +26,7 @@ extension AggregatedReaction {
private static func mockReaction(key: String, senderIDs: [String]) -> AggregatedReaction {
let senders = senderIDs
.map { id in
ReactionSender(senderID: id, timestamp: Date())
ReactionSender(senderID: id, timestamp: Date(timeIntervalSinceReferenceDate: 0))
}
return AggregatedReaction(accountOwnerID: alice, key: key, senders: senders)
}

View File

@ -108,7 +108,7 @@ private extension ColorScheme {
}
}
struct MapLibreStaticMapView_Previews: PreviewProvider {
struct MapLibreStaticMapView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
MapLibreStaticMapView(coordinates: CLLocationCoordinate2D(),
zoomLevel: 15,

View File

@ -88,7 +88,7 @@ struct MessageText: UIViewRepresentable {
// MARK: - Previews
struct MessageText_Previews: PreviewProvider {
struct MessageText_Previews: PreviewProvider, TestablePreview {
private static let defaultFontContainer: AttributeContainer = {
var container = AttributeContainer()
container.font = UIFont.preferredFont(forTextStyle: .body)

View File

@ -30,7 +30,7 @@ struct PillView: View {
}
}
struct PillView_Previews: PreviewProvider {
struct PillView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
PillView()
}

View File

@ -72,7 +72,7 @@ extension View {
}
}
struct ShimmerOverlay_Previews: PreviewProvider {
struct ShimmerOverlay_Previews: PreviewProvider, TestablePreview {
static let viewModel = HomeScreenViewModel(userSession: MockUserSession(clientProxy: MockClientProxy(userID: ""),
mediaProvider: MockMediaProvider()),
attributedStringBuilder: AttributedStringBuilder(permalinkBaseURL: ServiceLocator.shared.settings.permalinkBaseURL),

View File

@ -145,7 +145,7 @@ struct FormActionButtonStyle: ButtonStyle {
}
}
struct FormButtonStyles_Previews: PreviewProvider {
struct FormButtonStyles_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
Form {
Section {

View File

@ -61,7 +61,7 @@ struct FormRowLabelStyle: LabelStyle {
}
}
struct FormRowLabelStyle_Previews: PreviewProvider {
struct FormRowLabelStyle_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
VStack(alignment: .leading) {
Label("Person", systemImage: "person")

View File

@ -107,7 +107,7 @@ struct FullscreenDialog<Content: View, BottomContent: View>: View {
}
}
struct FullscreenDialog_Previews: PreviewProvider {
struct FullscreenDialog_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
FullscreenDialog(topPadding: UIConstants.iconTopPaddingToNavigationBar) {
content

View File

@ -59,7 +59,7 @@ struct AvatarHeaderView<Footer: View>: View {
}
}
struct HeaderView_Previews: PreviewProvider {
struct HeaderView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
Form {
AvatarHeaderView(avatarUrl: URL.picturesDirectory,

View File

@ -26,7 +26,7 @@ struct LocationMarkerView: View {
}
}
struct LocationMarkerView_Previews: PreviewProvider {
struct LocationMarkerView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
VStack(spacing: 30) {
LocationMarkerView()

View File

@ -35,7 +35,7 @@ struct MatrixUserShareLink<Label: View>: View {
}
}
struct MatrixUserPermalink_Previews: PreviewProvider {
struct MatrixUserPermalink_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
MatrixUserShareLink(userID: "@someone:somewhere.org") {
Label("Share", systemImage: "square.and.arrow.up")

View File

@ -66,7 +66,7 @@ struct PlaceholderAvatarImage: View {
}
}
struct PlaceholderAvatarImage_Previews: PreviewProvider {
struct PlaceholderAvatarImage_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
VStack(spacing: 75) {
PlaceholderAvatarImage(name: "Xavier", contentID: "@userid1:matrix.org")

View File

@ -89,7 +89,7 @@ private extension MembershipState {
}
}
struct UserProfileCell_Previews: PreviewProvider {
struct UserProfileCell_Previews: PreviewProvider, TestablePreview {
static let action: () -> Void = { }
static var previews: some View {

View File

@ -18,4 +18,4 @@ import SwiftUI
import Prefire
protocol TestablePreviewProvider: PreviewProvider, PrefireProvider { }
protocol TestablePreview: PrefireProvider { }

View File

@ -64,7 +64,7 @@ struct UserIndicatorModalView: View {
}
}
struct UserIndicatorModalView_Previews: PreviewProvider {
struct UserIndicatorModalView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
Group {
UserIndicatorModalView(indicator: UserIndicator(type: .modal,

View File

@ -52,7 +52,7 @@ struct UserIndicatorToastView: View {
}
}
struct UserIndicatorToastView_Previews: PreviewProvider {
struct UserIndicatorToastView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
VStack(spacing: 30) {
UserIndicatorToastView(indicator: UserIndicator(title: "Successfully logged in",

View File

@ -107,7 +107,7 @@ struct AnalyticsPromptScreen: View {
// MARK: - Previews
struct AnalyticsPromptScreen_Previews: PreviewProvider {
struct AnalyticsPromptScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = AnalyticsPromptScreenViewModel(termsURL: ServiceLocator.shared.settings.analyticsConfiguration.termsURL)
static var previews: some View {
AnalyticsPromptScreen(context: viewModel.context)

View File

@ -64,7 +64,7 @@ private struct CheckmarkLabelStyle: LabelStyle {
// MARK: - Previews
struct AnalyticsPromptScreenCheckmarkItem_Previews: PreviewProvider {
struct AnalyticsPromptScreenCheckmarkItem_Previews: PreviewProvider, TestablePreview {
static let strings = AnalyticsPromptScreenStrings(termsURL: ServiceLocator.shared.settings.analyticsConfiguration.termsURL)
@ViewBuilder

View File

@ -41,7 +41,7 @@ struct AuthenticationIconImage: View {
// MARK: - Previews
struct AuthenticationIconImage_Previews: PreviewProvider {
struct AuthenticationIconImage_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
HStack(spacing: 20) {
AuthenticationIconImage(image: Image(asset: Asset.Images.serverSelectionIcon), insets: 19)

View File

@ -132,7 +132,7 @@ struct LoginScreen: View {
// MARK: - Previews
struct LoginScreen_Previews: PreviewProvider {
struct LoginScreen_Previews: PreviewProvider, TestablePreview {
static let credentialsViewModel: LoginScreenViewModel = {
let viewModel = LoginScreenViewModel(homeserver: .mockMatrixDotOrg, slidingSyncLearnMoreURL: ServiceLocator.shared.settings.slidingSyncLearnMoreURL)
viewModel.context.username = "alice"

View File

@ -73,7 +73,7 @@ struct ServerConfirmationScreen: View {
// MARK: - Previews
struct ServerConfirmationScreen_Previews: PreviewProvider {
struct ServerConfirmationScreen_Previews: PreviewProvider, TestablePreview {
static let loginViewModel = ServerConfirmationScreenViewModel(authenticationService: MockAuthenticationServiceProxy(),
authenticationFlow: .login)
static let registerViewModel = ServerConfirmationScreenViewModel(authenticationService: MockAuthenticationServiceProxy(),

View File

@ -101,7 +101,7 @@ struct ServerSelectionScreen: View {
// MARK: - Previews
struct ServerSelection_Previews: PreviewProvider {
struct ServerSelection_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
ForEach(MockServerSelectionScreenState.allCases, id: \.self) { state in
NavigationStack {

View File

@ -174,7 +174,7 @@ struct SoftLogoutScreen: View {
// MARK: - Previews
struct SoftLogoutScreen_Previews: PreviewProvider {
struct SoftLogoutScreen_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
ForEach(MockSoftLogoutScreenState.allCases) { state in
screen(for: state.viewModel)

View File

@ -82,7 +82,7 @@ struct WaitingDialog<Content: View, BottomContent: View>: View {
}
}
struct WaitingDialog_Previews: PreviewProvider {
struct WaitingDialog_Previews: PreviewProvider, TestablePreview {
static let viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg)
static var previews: some View {

View File

@ -70,7 +70,7 @@ struct WaitlistScreen: View {
// MARK: - Previews
struct WaitlistScreen_Previews: PreviewProvider {
struct WaitlistScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg)
static let successViewModel = {
let viewModel = WaitlistScreenViewModel(homeserver: .mockMatrixDotOrg)

View File

@ -139,7 +139,7 @@ struct BugReportScreen: View {
// MARK: - Previews
struct BugReport_Previews: PreviewProvider {
struct BugReport_Previews: PreviewProvider, TestablePreview {
static let viewModel = BugReportScreenViewModel(bugReportService: BugReportServiceMock(),
userID: "@mock.client.com",
deviceID: nil,

View File

@ -174,7 +174,7 @@ struct ComposerToolbar: View {
}
}
struct ComposerToolbar_Previews: PreviewProvider {
struct ComposerToolbar_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
ComposerToolbar.mock()
}

View File

@ -173,7 +173,7 @@ private struct MessageComposerHeaderLabelStyle: LabelStyle {
}
}
struct MessageComposer_Previews: PreviewProvider {
struct MessageComposer_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static let replyTypes: [TimelineItemReplyDetails] = [

View File

@ -130,7 +130,7 @@ struct RoomAttachmentPicker: View {
}
}
struct RoomAttachmentPicker_Previews: PreviewProvider {
struct RoomAttachmentPicker_Previews: PreviewProvider, TestablePreview {
static let viewModel = ComposerToolbarViewModel(wysiwygViewModel: WysiwygComposerViewModel())
static var previews: some View {

View File

@ -161,7 +161,7 @@ private struct CreatePollOptionView: View {
// MARK: - Previews
struct CreatePollScreen_Previews: PreviewProvider {
struct CreatePollScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = CreatePollScreenViewModel()
static var previews: some View {
NavigationStack {

View File

@ -204,7 +204,7 @@ struct CreateRoomScreen: View {
// MARK: - Previews
struct CreateRoom_Previews: PreviewProvider {
struct CreateRoom_Previews: PreviewProvider, TestablePreview {
static let viewModel = {
let userSession = MockUserSession(clientProxy: MockClientProxy(userID: "@userid:example.com"),
mediaProvider: MockMediaProvider())

View File

@ -100,7 +100,7 @@ private struct IsSearching: ViewModifier {
// MARK: - Previews
struct EmojiPickerScreen_Previews: PreviewProvider {
struct EmojiPickerScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = EmojiPickerScreenViewModel(emojiProvider: EmojiProvider())
static var previews: some View {

View File

@ -29,10 +29,10 @@ struct EmojiPickerScreenHeaderView: View {
}
}
struct EmojiPickerScreenHeaderView_Previews: PreviewProvider {
struct EmojiPickerScreenHeaderView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
Group {
EmojiPickerScreenHeaderView(title: "")
EmojiPickerScreenHeaderView(title: "Title")
}
}
}

View File

@ -309,7 +309,7 @@ struct HomeScreen: View {
// MARK: - Previews
struct HomeScreen_Previews: PreviewProvider {
struct HomeScreen_Previews: PreviewProvider, TestablePreview {
static let loadingViewModel = viewModel(.loading)
static let loadedViewModel = viewModel(.loaded(.mockRooms))
static let emptyViewModel = viewModel(.loaded([]))

View File

@ -101,7 +101,7 @@ struct HomeScreenEmptyStateLayout: Layout {
// MARK: - Previews
struct HomeScreenEmptyStateView_Previews: PreviewProvider {
struct HomeScreenEmptyStateView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
HomeScreenEmptyStateView(context: viewModel.context)
.previewDisplayName("View")

View File

@ -49,7 +49,7 @@ struct HomeScreenInvitesButton: View {
}
}
struct HomeScreenInvitesButton_Previews: PreviewProvider {
struct HomeScreenInvitesButton_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
HomeScreenInvitesButton(title: "Invites", hasBadge: true, action: { })
.previewDisplayName("Badge on")

View File

@ -182,7 +182,7 @@ private extension View {
}
}
struct HomeScreenRoomCell_Previews: PreviewProvider {
struct HomeScreenRoomCell_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
let summaryProvider = MockRoomSummaryProvider(state: .loaded(.mockRooms))
@ -205,7 +205,7 @@ struct HomeScreenRoomCell_Previews: PreviewProvider {
roomId: details.id,
name: details.name,
hasUnreads: details.unreadNotificationCount > 0,
timestamp: Date.now.formattedMinimal(),
timestamp: Date(timeIntervalSinceReferenceDate: 0).formattedMinimal(),
lastMessage: details.lastMessage,
notificationMode: details.notificationMode)
}

View File

@ -142,7 +142,7 @@ struct InviteUsersScreen: View {
// MARK: - Previews
struct InviteUsersScreen_Previews: PreviewProvider {
struct InviteUsersScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = {
let userDiscoveryService = UserDiscoveryServiceMock()
userDiscoveryService.fetchSuggestionsReturnValue = .success([.mockAlice])

View File

@ -54,7 +54,7 @@ struct InviteUsersScreenSelectedItem: View {
}
}
struct InviteUsersScreenSelectedItem_Previews: PreviewProvider {
struct InviteUsersScreenSelectedItem_Previews: PreviewProvider, TestablePreview {
static let people: [UserProfileProxy] = [.mockAlice, .mockVerbose]
static var previews: some View {

View File

@ -63,7 +63,7 @@ struct InvitesScreen: View {
// MARK: - Previews
struct InvitesScreen_Previews: PreviewProvider {
struct InvitesScreen_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
NavigationView {
InvitesScreen(context: InvitesScreenViewModel.noInvites.context)

View File

@ -155,7 +155,7 @@ struct InvitesScreenCell: View {
}
}
struct InvitesScreenCell_Previews: PreviewProvider {
struct InvitesScreenCell_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
ScrollView {
VStack(spacing: 0) {

View File

@ -156,7 +156,7 @@ struct StaticLocationScreen: View {
// MARK: - Previews
struct StaticLocationScreenViewer_Previews: PreviewProvider {
struct StaticLocationScreenViewer_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
NavigationStack {
StaticLocationScreen(context: StaticLocationScreenViewModel(interactionMode: .picker).context)

View File

@ -113,7 +113,7 @@ private class PreviewItem: NSObject, QLPreviewItem {
// MARK: - Previews
struct MediaUploadPreviewScreen_Previews: PreviewProvider {
struct MediaUploadPreviewScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = MediaUploadPreviewScreenViewModel(userIndicatorController: UserIndicatorControllerMock.default,
roomProxy: RoomProxyMock(),
mediaUploadingPreprocessor: MediaUploadingPreprocessor(),

View File

@ -96,7 +96,7 @@ private struct MessageForwardingRoomCell: View {
// MARK: - Previews
struct MessageForwardingScreen_Previews: PreviewProvider {
struct MessageForwardingScreen_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
let summaryProvider = MockRoomSummaryProvider(state: .loaded(.mockRooms))
let viewModel = MessageForwardingScreenViewModel(roomSummaryProvider: summaryProvider, sourceRoomID: "")

View File

@ -50,7 +50,7 @@ struct MigrationScreen: View {
// MARK: - Previews
struct MigrationScreen_Previews: PreviewProvider {
struct MigrationScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = MigrationScreenViewModel()
static var previews: some View {
MigrationScreen(context: viewModel.context)

View File

@ -97,7 +97,7 @@ struct OnboardingScreen: View {
// MARK: - Previews
struct OnboardingScreen_Previews: PreviewProvider {
struct OnboardingScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = OnboardingScreenViewModel()
static var previews: some View {

View File

@ -33,7 +33,7 @@ struct PlaceholderScreen: View {
}
}
struct PlaceholderScreen_Previews: PreviewProvider {
struct PlaceholderScreen_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
PlaceholderScreen()
.previewDisplayName("Screen")

View File

@ -31,7 +31,7 @@ struct SplashScreen: View {
}
}
struct SplashScreen_Previews: PreviewProvider {
struct SplashScreen_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
SplashScreen()
}

View File

@ -80,7 +80,7 @@ struct ReportContentScreen: View {
// MARK: - Previews
struct ReportContentScreen_Previews: PreviewProvider {
struct ReportContentScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = ReportContentScreenViewModel(eventID: "",
senderID: "",
roomProxy: RoomProxyMock(with: .init(displayName: nil)))

View File

@ -158,17 +158,17 @@ struct RoomDetailsEditScreen: View {
// MARK: - Previews
struct RoomDetailsEditScreen_Previews: PreviewProvider {
struct RoomDetailsEditScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomDetailsEditScreenViewModel(accountOwner: RoomMemberProxyMock.mockAlice,
mediaProvider: MockMediaProvider(),
roomProxy: RoomProxyMock(with: .init(name: "Room", displayName: "Room")),
roomProxy: RoomProxyMock(with: .init(id: "test_id", name: "Room", displayName: "Room")),
userIndicatorController: UserIndicatorControllerMock.default)
static let readOnlyViewModel = {
let accountOwner = RoomMemberProxyMock.mockOwner(allowedStateEvents: [])
return RoomDetailsEditScreenViewModel(accountOwner: accountOwner,
mediaProvider: MockMediaProvider(),
roomProxy: RoomProxyMock(with: .init(name: "Room", displayName: "Room")),
roomProxy: RoomProxyMock(with: .init(id: "test_id", name: "Room", displayName: "Room")),
userIndicatorController: UserIndicatorControllerMock.default)
}()

View File

@ -257,14 +257,14 @@ struct RoomDetailsScreen: View {
// MARK: - Previews
struct RoomDetailsScreen_Previews: PreviewProvider {
struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview {
static let genericRoomViewModel = {
let members: [RoomMemberProxyMock] = [
.mockAlice,
.mockBob,
.mockCharlie
]
let roomProxy = RoomProxyMock(with: .init(displayName: "Room A",
let roomProxy = RoomProxyMock(with: .init(id: "room_a_id", displayName: "Room A",
topic: "Bacon ipsum dolor amet short ribs buffalo pork loin cupim frankfurter. Burgdoggen pig shankle biltong flank ham jowl sirloin bacon cow. T-bone alcatra boudin beef spare ribs pig fatback jerky swine short ribs shankle chislic frankfurter pork loin. Chicken tri-tip bresaola t-bone pastrami brisket.", // swiftlint:disable:this line_length
isDirect: false,
isEncrypted: true,
@ -289,7 +289,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider {
.mockDan
]
let roomProxy = RoomProxyMock(with: .init(displayName: "DM Room",
let roomProxy = RoomProxyMock(with: .init(id: "dm_room_id", displayName: "DM Room",
topic: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.",
isDirect: true,
isEncrypted: true,
@ -312,7 +312,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider {
.mockBob,
.mockCharlie
]
let roomProxy = RoomProxyMock(with: .init(displayName: "Room A",
let roomProxy = RoomProxyMock(with: .init(id: "simple_room_id", displayName: "Room A",
isDirect: false,
isEncrypted: false,
members: members))

View File

@ -100,7 +100,7 @@ struct RoomMemberDetailsScreen: View {
// MARK: - Previews
struct RoomMemberDetailsScreen_Previews: PreviewProvider {
struct RoomMemberDetailsScreen_Previews: PreviewProvider, TestablePreview {
static let roomProxyMock = RoomProxyMock(with: .init(displayName: ""))
static let otherUserViewModel = {
let member = RoomMemberProxyMock.mockDan

View File

@ -74,7 +74,7 @@ struct RoomMembersListScreen: View {
// MARK: - Previews
struct RoomMembersListScreen_Previews: PreviewProvider {
struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = {
let members: [RoomMemberProxyMock] = [
.mockAlice,

View File

@ -46,7 +46,7 @@ struct RoomMembersListScreenMemberCell: View {
}
}
struct RoomMembersListMemberCell_Previews: PreviewProvider {
struct RoomMembersListMemberCell_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
let members: [RoomMemberProxyMock] = [
.mockAlice,

View File

@ -37,7 +37,7 @@ struct RoomNotificationSettingsCustomSectionView: View {
}
}
struct RoomNotificationSettingsCustomSectionView_Previews: PreviewProvider {
struct RoomNotificationSettingsCustomSectionView_Previews: PreviewProvider, TestablePreview {
static let viewModel = {
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .allMessages, roomMode: .mentionsAndKeywordsOnly))

View File

@ -79,7 +79,7 @@ struct RoomNotificationSettingsScreen: View {
// MARK: - Previews
struct RoomNotificationSettingsScreen_Previews: PreviewProvider {
struct RoomNotificationSettingsScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = {
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .mentionsAndKeywordsOnly, roomMode: .mentionsAndKeywordsOnly))

View File

@ -48,7 +48,7 @@ struct RoomNotificationSettingsUserDefinedScreen: View {
// MARK: - Previews
struct RoomNotificationSettingsUserDefinedScreen_Previews: PreviewProvider {
struct RoomNotificationSettingsUserDefinedScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = {
let notificationSettingsProxy = NotificationSettingsProxyMock(with: .init(defaultRoomMode: .mentionsAndKeywordsOnly, roomMode: .mentionsAndKeywordsOnly))

View File

@ -179,7 +179,7 @@ struct TimelineReplyView: View {
}
}
struct TimelineReplyView_Previews: PreviewProvider {
struct TimelineReplyView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -47,7 +47,7 @@ struct RoomHeaderView: View {
}
}
struct RoomHeaderView_Previews: PreviewProvider {
struct RoomHeaderView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
bodyPlain
bodyEncrypted

View File

@ -163,7 +163,7 @@ struct RoomScreen: View {
// MARK: - Previews
struct RoomScreen_Previews: PreviewProvider {
struct RoomScreen_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel(timelineController: MockRoomTimelineController(),
mediaProvider: MockMediaProvider(),
roomProxy: RoomProxyMock(with: .init(displayName: "Preview room")),

View File

@ -62,7 +62,7 @@ extension View {
}
}
struct LongPressWithFeedback_Previews: PreviewProvider {
struct LongPressWithFeedback_Previews: PreviewProvider, TestablePreview {
static var previews: some View { Preview() }
struct Preview: View {

View File

@ -34,7 +34,7 @@ struct SwipeToReplyView: View {
}
}
struct SwipeToReplyView_Previews: PreviewProvider {
struct SwipeToReplyView_Previews: PreviewProvider, TestablePreview {
static let timelineItem = TextRoomTimelineItem(id: .init(timelineID: ""),
timestamp: "",
isOutgoing: true,

View File

@ -33,7 +33,7 @@ struct ThreadDecorator: View {
}
}
struct ThreadDecorator_Previews: PreviewProvider {
struct ThreadDecorator_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
ThreadDecorator()
}

View File

@ -396,7 +396,7 @@ private extension EventBasedTimelineItemProtocol {
}
}
struct TimelineItemBubbledStylerView_Previews: PreviewProvider {
struct TimelineItemBubbledStylerView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -140,7 +140,7 @@ struct TimelineItemPlainStylerView<Content: View>: View {
}
}
struct TimelineItemPlainStylerView_Previews: PreviewProvider {
struct TimelineItemPlainStylerView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
// These akwats include a reply

View File

@ -35,7 +35,7 @@ struct TimelineStyler<Content: View>: View {
}
}
struct TimelineItemStyler_Previews: TestablePreviewProvider {
struct TimelineItemStyler_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static let base = TextRoomTimelineItem(id: .random, timestamp: "Now", isOutgoing: true, isEditable: false, isThreaded: false, sender: .test, content: .init(body: "Test"))

View File

@ -148,7 +148,7 @@ private struct ReactionSummarySenderView: View {
}
}
struct ReactionsSummaryView_Previews: PreviewProvider {
struct ReactionsSummaryView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
ReactionsSummaryView(reactions: AggregatedReaction.mockReactions,
members: [:],

View File

@ -40,7 +40,7 @@ struct TimelineDeliveryStatusView: View {
}
}
struct TimelineDeliveryStatusView_Previews: PreviewProvider {
struct TimelineDeliveryStatusView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
VStack {
TimelineDeliveryStatusView(deliveryStatus: .sending)

View File

@ -190,7 +190,7 @@ struct TimelineReactionViewPreviewsContainer: View {
}
}
struct TimelineReactionView_Previews: PreviewProvider {
struct TimelineReactionView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
TimelineReactionViewPreviewsContainer()
}

View File

@ -49,7 +49,7 @@ struct TimelineReadReceiptsView: View {
}
}
struct TimelineReadReceiptsView_Previews: PreviewProvider {
struct TimelineReadReceiptsView_Previews: PreviewProvider, TestablePreview {
static let members: [RoomMemberProxyMock] = [
.mockAlice,
.mockBob,

View File

@ -111,7 +111,7 @@ extension View {
}
}
struct SwipeRightAction_Previews: PreviewProvider {
struct SwipeRightAction_Previews: PreviewProvider, TestablePreview {
static var previews: some View { Preview() }
struct Preview: View {

View File

@ -35,7 +35,7 @@ struct AudioRoomTimelineView: View {
}
}
struct AudioRoomTimelineView_Previews: PreviewProvider {
struct AudioRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -59,7 +59,7 @@ struct CollapsibleRoomTimelineView: View {
}
}
struct CollapsibleRoomTimelineView_Previews: PreviewProvider {
struct CollapsibleRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let item = CollapsibleTimelineItem(items: [
SeparatorRoomTimelineItem(id: .init(timelineID: "First separator"), text: "This is a separator"),
SeparatorRoomTimelineItem(id: .init(timelineID: "Second separator"), text: "This is another separator")

View File

@ -32,7 +32,7 @@ struct EmoteRoomTimelineView: View, TextBasedRoomTimelineViewProtocol {
}
}
struct EmoteRoomTimelineView_Previews: PreviewProvider {
struct EmoteRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -53,7 +53,7 @@ private struct EncryptedHistoryLabelStyle: LabelStyle {
}
}
struct EncryptedHistoryRoomTimelineView_Previews: PreviewProvider {
struct EncryptedHistoryRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
let item = EncryptedHistoryRoomTimelineItem(id: .random)
EncryptedHistoryRoomTimelineView(timelineItem: item)

View File

@ -42,7 +42,7 @@ struct RoomTimelineViewLabelStyle: LabelStyle {
}
}
struct EncryptedRoomTimelineView_Previews: PreviewProvider {
struct EncryptedRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -35,7 +35,7 @@ struct FileRoomTimelineView: View {
}
}
struct FileRoomTimelineView_Previews: PreviewProvider {
struct FileRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -164,7 +164,7 @@ struct FormattedBodyText: View {
// MARK: - Previews
struct FormattedBodyText_Previews: PreviewProvider {
struct FormattedBodyText_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
body
body

View File

@ -55,7 +55,7 @@ struct ImageRoomTimelineView: View {
}
}
struct ImageRoomTimelineView_Previews: PreviewProvider {
struct ImageRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -82,7 +82,7 @@ private extension MapLibreStaticMapView {
}
}
struct LocationRoomTimelineView_Previews: PreviewProvider {
struct LocationRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -43,7 +43,7 @@ struct NoticeRoomTimelineView: View, TextBasedRoomTimelineViewProtocol {
}
}
struct NoticeRoomTimelineView_Previews: PreviewProvider {
struct NoticeRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -26,7 +26,7 @@ struct PaginationIndicatorRoomTimelineView: View {
}
}
struct PaginationIndicatorRoomTimelineView_Previews: PreviewProvider {
struct PaginationIndicatorRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
let item = PaginationIndicatorRoomTimelineItem()
PaginationIndicatorRoomTimelineView(timelineItem: item)

View File

@ -80,7 +80,7 @@ private struct PollProgressView: View {
}
}
struct PollOptionView_Previews: PreviewProvider {
struct PollOptionView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
VStack {
Group {

View File

@ -117,7 +117,7 @@ private extension Poll {
}
}
struct PollRoomTimelineView_Previews: PreviewProvider {
struct PollRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -35,7 +35,7 @@ struct ReadMarkerRoomTimelineView: View {
}
}
struct ReadMarkerRoomTimelineView_Previews: PreviewProvider {
struct ReadMarkerRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static let item = ReadMarkerRoomTimelineItem(id: .init(timelineID: .init(UUID().uuidString)))

View File

@ -29,7 +29,7 @@ struct RedactedRoomTimelineView: View {
}
}
struct RedactedRoomTimelineView_Previews: PreviewProvider {
struct RedactedRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -29,7 +29,7 @@ struct SeparatorRoomTimelineView: View {
}
}
struct SeparatorRoomTimelineView_Previews: PreviewProvider {
struct SeparatorRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
let item = SeparatorRoomTimelineItem(id: .init(timelineID: "Separator"), text: "This is a separator")
SeparatorRoomTimelineView(timelineItem: item)

View File

@ -30,7 +30,7 @@ struct StateRoomTimelineView: View {
}
}
struct StateRoomTimelineView_Previews: PreviewProvider {
struct StateRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
body
body

View File

@ -47,7 +47,7 @@ struct StickerRoomTimelineView: View {
}
}
struct StickerRoomTimelineView_Previews: PreviewProvider {
struct StickerRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -36,7 +36,7 @@ struct TextRoomTimelineView: View, TextBasedRoomTimelineViewProtocol {
}
}
struct TextRoomTimelineView_Previews: PreviewProvider {
struct TextRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -36,7 +36,7 @@ struct TimelineStartRoomTimelineView: View {
}
}
struct TimelineStartRoomTimelineView_Previews: PreviewProvider {
struct TimelineStartRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
let item = TimelineStartRoomTimelineItem(name: "Alice and Bob")
TimelineStartRoomTimelineView(timelineItem: item)

View File

@ -79,7 +79,7 @@ struct UITimelineView: UIViewControllerRepresentable {
// MARK: - Previews
struct UITimelineView_Previews: PreviewProvider {
struct UITimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel(timelineController: MockRoomTimelineController(),
mediaProvider: MockMediaProvider(),
roomProxy: RoomProxyMock(with: .init(displayName: "Preview room")),

View File

@ -38,7 +38,7 @@ struct UnsupportedRoomTimelineView: View {
}
}
struct UnsupportedRoomTimelineView_Previews: PreviewProvider {
struct UnsupportedRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -67,7 +67,7 @@ struct VideoRoomTimelineView: View {
}
}
struct VideoRoomTimelineView_Previews: PreviewProvider {
struct VideoRoomTimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -97,7 +97,7 @@ struct TimelineItemDebugView: View {
}
}
struct TimelineItemDebugView_Previews: PreviewProvider {
struct TimelineItemDebugView_Previews: PreviewProvider, TestablePreview {
static let smallContent = """
{
SomeItem(

View File

@ -286,7 +286,7 @@ public struct TimelineItemMenu: View {
}
}
struct TimelineItemMenu_Previews: PreviewProvider {
struct TimelineItemMenu_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel.mock
static var previews: some View {

View File

@ -167,7 +167,7 @@ struct TimelineView: View {
// MARK: - Previews
struct TimelineView_Previews: PreviewProvider {
struct TimelineView_Previews: PreviewProvider, TestablePreview {
static let viewModel = RoomScreenViewModel(timelineController: MockRoomTimelineController(),
mediaProvider: MockMediaProvider(),
roomProxy: RoomProxyMock(with: .init(displayName: "Preview room")),

View File

@ -228,7 +228,7 @@ struct SessionVerificationScreen: View {
// MARK: - Previews
struct SessionVerification_Previews: PreviewProvider {
struct SessionVerification_Previews: PreviewProvider, TestablePreview {
static var previews: some View {
sessionVerificationScreen(state: .initial)
.previewDisplayName("Initial")

Some files were not shown because too many files have changed in this diff Show More