Rename RoomTimelineItemFixtures to just TimelineFixtures

This commit is contained in:
Stefan Ceriu
2026-06-03 14:21:28 +03:00
parent 9615e184ad
commit 56d5f72f01
8 changed files with 50 additions and 50 deletions
@@ -21,7 +21,7 @@ extension TimelineControllerFactoryMock {
if let timelineController = configuration.threadTimelineController {
return timelineController
} else {
return TimelineControllerMock(.init(timelineItems: RoomTimelineItemFixtures.largeChunk))
return TimelineControllerMock(.init(timelineItems: TimelineFixtures.largeChunk))
}
}
@@ -29,7 +29,7 @@ extension TimelineControllerFactoryMock {
if let timelineController = configuration.threadTimelineController {
return .success(timelineController)
} else {
let timelineController = TimelineControllerMock(.init(timelineKind: .thread(rootEventID: threadRootEventID), timelineItems: RoomTimelineItemFixtures.largeChunk))
let timelineController = TimelineControllerMock(.init(timelineKind: .thread(rootEventID: threadRootEventID), timelineItems: TimelineFixtures.largeChunk))
return .success(timelineController)
}
}
@@ -16,7 +16,7 @@ import MatrixRustSDKMocks
struct TimelineControllerMockConfiguration {
var roomProxy: JoinedRoomProxyProtocol?
var timelineKind: TimelineKind = .live
var timelineItems: [RoomTimelineItemProtocol] = RoomTimelineItemFixtures.default
var timelineItems: [RoomTimelineItemProtocol] = TimelineFixtures.default
var timelineProxy: TimelineProxyProtocol?
var timelineItemsTimestamps: [TimelineItemIdentifier: Date] = [:]
var paginationState: TimelinePaginationState = .initial
@@ -25,7 +25,7 @@ struct TimelineControllerMockConfiguration {
extension TimelineControllerMock {
static var mediaGallery: TimelineControllerMock {
TimelineControllerMock(.init(timelineKind: .media(.mediaFilesScreen), timelineItems: (0..<5).reduce([]) { partialResult, _ in
partialResult + [RoomTimelineItemFixtures.separator] + RoomTimelineItemFixtures.mediaChunk
partialResult + [TimelineFixtures.separator] + TimelineFixtures.mediaChunk
}))
}
@@ -362,11 +362,11 @@ struct TimelineItemMenu_Previews: PreviewProvider, TestablePreview {
static func makeItem(itemType: ItemType) -> EventBasedTimelineItemProtocol? {
switch itemType {
case .incomingText:
RoomTimelineItemFixtures.singleMessageChunk.first as? EventBasedTimelineItemProtocol
TimelineFixtures.singleMessageChunk.first as? EventBasedTimelineItemProtocol
case .outgoingMedia:
RoomTimelineItemFixtures.mediaChunk[1] as? EventBasedTimelineItemProtocol
TimelineFixtures.mediaChunk[1] as? EventBasedTimelineItemProtocol
case .outgoingMediaWithCaption:
RoomTimelineItemFixtures.mediaChunk[5] as? EventBasedTimelineItemProtocol
TimelineFixtures.mediaChunk[5] as? EventBasedTimelineItemProtocol
}
}
}
@@ -87,7 +87,7 @@ struct HighlightedTimelineItemModifier_Previews: PreviewProvider, TestablePrevie
struct HighlightedTimelineItemTimeline_Previews: PreviewProvider {
static let roomProxyMock = JoinedRoomProxyMock(.init(name: "Preview room"))
static let roomViewModel = RoomScreenViewModel.mock(roomProxyMock: roomProxyMock)
static let focussedEventID = "RoomTimelineItemFixtures.default.5"
static let focussedEventID = "TimelineFixtures.default.5"
static let composerViewModel = ComposerToolbarViewModel.mock()
static let timelineViewModel = {
let appSettings = AppSettings.volatile()
@@ -9,12 +9,12 @@
import Foundation
import MatrixRustSDK
enum RoomTimelineItemFixtures {
enum TimelineFixtures {
/// The default timeline items used in Xcode previews etc.
static var `default`: [RoomTimelineItemProtocol] = [
SeparatorRoomTimelineItem(id: .virtual(uniqueID: .init("Yesterday")), timestamp: .mock),
TextRoomTimelineItem(id: .event(uniqueID: .init(".RoomTimelineItemFixtures.default.0"),
eventOrTransactionID: .eventID("RoomTimelineItemFixtures.default.0")),
TextRoomTimelineItem(id: .event(uniqueID: .init(".TimelineFixtures.default.0"),
eventOrTransactionID: .eventID("TimelineFixtures.default.0")),
timestamp: .mock,
isOutgoing: false,
isEditable: false,
@@ -22,8 +22,8 @@ enum RoomTimelineItemFixtures {
sender: .init(id: "", displayName: "Jacob"),
content: .init(body: "That looks so good!"),
properties: RoomTimelineItemProperties(isEdited: true)),
TextRoomTimelineItem(id: .event(uniqueID: .init("RoomTimelineItemFixtures.default.1"),
eventOrTransactionID: .eventID("RoomTimelineItemFixtures.default.1")),
TextRoomTimelineItem(id: .event(uniqueID: .init("TimelineFixtures.default.1"),
eventOrTransactionID: .eventID("TimelineFixtures.default.1")),
timestamp: .mock,
isOutgoing: false,
isEditable: false,
@@ -33,8 +33,8 @@ enum RoomTimelineItemFixtures {
properties: RoomTimelineItemProperties(reactions: [
AggregatedReaction(accountOwnerID: "me", key: "🙌", senders: [ReactionSender(id: "me", timestamp: Date())])
])),
TextRoomTimelineItem(id: .event(uniqueID: .init("RoomTimelineItemFixtures.default.2"),
eventOrTransactionID: .eventID("RoomTimelineItemFixtures.default.2")),
TextRoomTimelineItem(id: .event(uniqueID: .init("TimelineFixtures.default.2"),
eventOrTransactionID: .eventID("TimelineFixtures.default.2")),
timestamp: .mock,
isOutgoing: false,
isEditable: false,
@@ -52,8 +52,8 @@ enum RoomTimelineItemFixtures {
])
])),
SeparatorRoomTimelineItem(id: .virtual(uniqueID: .init("Today")), timestamp: .mock),
TextRoomTimelineItem(id: .event(uniqueID: .init("RoomTimelineItemFixtures.default.3"),
eventOrTransactionID: .eventID("RoomTimelineItemFixtures.default.3")),
TextRoomTimelineItem(id: .event(uniqueID: .init("TimelineFixtures.default.3"),
eventOrTransactionID: .eventID("TimelineFixtures.default.3")),
timestamp: .mock,
isOutgoing: false,
isEditable: false,
@@ -61,16 +61,16 @@ enum RoomTimelineItemFixtures {
sender: .init(id: "", displayName: "Helena"),
content: .init(body: "Wow, cool. Ok, lets go the usual place tomorrow?! Is that too soon? Here’s the menu, let me know what you want it’s on me!"),
properties: RoomTimelineItemProperties(orderedReadReceipts: [ReadReceipt(userID: "alice", formattedTimestamp: nil)])),
TextRoomTimelineItem(id: .event(uniqueID: .init("RoomTimelineItemFixtures.default.4"),
eventOrTransactionID: .eventID("RoomTimelineItemFixtures.default.4")),
TextRoomTimelineItem(id: .event(uniqueID: .init("TimelineFixtures.default.4"),
eventOrTransactionID: .eventID("TimelineFixtures.default.4")),
timestamp: .mock,
isOutgoing: true,
isEditable: true,
canBeRepliedTo: true,
sender: .init(id: "", displayName: "Bob"),
content: .init(body: "And John's speech was amazing!")),
TextRoomTimelineItem(id: .event(uniqueID: .init("RoomTimelineItemFixtures.default.5"),
eventOrTransactionID: .eventID("RoomTimelineItemFixtures.default.5")),
TextRoomTimelineItem(id: .event(uniqueID: .init("TimelineFixtures.default.5"),
eventOrTransactionID: .eventID("TimelineFixtures.default.5")),
timestamp: .mock,
isOutgoing: true,
isEditable: true,
@@ -82,8 +82,8 @@ enum RoomTimelineItemFixtures {
ReadReceipt(userID: "bob", formattedTimestamp: nil),
ReadReceipt(userID: "charlie", formattedTimestamp: nil),
ReadReceipt(userID: "dan", formattedTimestamp: nil)])),
TextRoomTimelineItem(id: .event(uniqueID: .init("RoomTimelineItemFixtures.default.6"),
eventOrTransactionID: .eventID("RoomTimelineItemFixtures.default.6")),
TextRoomTimelineItem(id: .event(uniqueID: .init("TimelineFixtures.default.6"),
eventOrTransactionID: .eventID("TimelineFixtures.default.6")),
timestamp: .mock,
isOutgoing: false,
isEditable: false,
@@ -248,7 +248,7 @@ enum RoomTimelineItemFixtures {
// MARK: - Private helpers
private extension RoomTimelineItemFixtures {
private extension TimelineFixtures {
static let factory = RoomTimelineItemFactory(userID: "@alice:matrix.org",
attributedStringBuilder: AttributedStringBuilder(mentionBuilder: MentionBuilder()),
stateEventStringBuilder: RoomStateEventStringBuilder(userID: "@alice:matrix.org"))
@@ -273,7 +273,7 @@ extension TimelineItemProxy {
private extension TimelineItemProxy {
func buildRoomTimelineItem() -> RoomTimelineItemProtocol {
guard case .event(let eventProxy) = self,
let item = RoomTimelineItemFixtures.factory.buildTimelineItem(for: eventProxy, isDM: false) else {
let item = TimelineFixtures.factory.buildTimelineItem(for: eventProxy, isDM: false) else {
fatalError()
}
@@ -309,7 +309,7 @@ class MockScreen: Identifiable {
return navigationStackCoordinator
case .roomSmallTimeline:
let navigationStackCoordinator = NavigationStackCoordinator()
let timelineController = TimelineControllerMock(.init(timelineItems: RoomTimelineItemFixtures.smallChunk))
let timelineController = TimelineControllerMock(.init(timelineItems: TimelineFixtures.smallChunk))
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
roomProxy: JoinedRoomProxyMock(.init(name: "New room", avatarURL: .mockMXCAvatar)),
timelineController: timelineController,
@@ -330,7 +330,7 @@ class MockScreen: Identifiable {
return navigationStackCoordinator
case .roomSmallTimelineWithReactions:
let navigationStackCoordinator = NavigationStackCoordinator()
let timelineController = TimelineControllerMock(.init(timelineItems: RoomTimelineItemFixtures.default))
let timelineController = TimelineControllerMock(.init(timelineItems: TimelineFixtures.default))
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
roomProxy: JoinedRoomProxyMock(.init(name: "New room", avatarURL: .mockMXCAvatar)),
timelineController: timelineController,
@@ -350,7 +350,7 @@ class MockScreen: Identifiable {
return navigationStackCoordinator
case .roomSmallTimelineWithReadReceipts:
let navigationStackCoordinator = NavigationStackCoordinator()
let timelineController = TimelineControllerMock(.init(timelineItems: RoomTimelineItemFixtures.smallChunkWithReadReceipts))
let timelineController = TimelineControllerMock(.init(timelineItems: TimelineFixtures.smallChunkWithReadReceipts))
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
roomProxy: JoinedRoomProxyMock(.init(name: "New room", avatarURL: .mockMXCAvatar)),
timelineController: timelineController,
@@ -371,10 +371,10 @@ class MockScreen: Identifiable {
case .roomSmallTimelineIncomingAndSmallPagination:
let navigationStackCoordinator = NavigationStackCoordinator()
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: RoomTimelineItemFixtures.smallChunkProxies,
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: TimelineFixtures.smallChunkProxies,
listenForSignals: true)
itemProvider.backPaginationResponses = [RoomTimelineItemFixtures.singleMessageChunkProxies]
itemProvider.incomingItems = [RoomTimelineItemFixtures.incomingMessageProxy]
itemProvider.backPaginationResponses = [TimelineFixtures.singleMessageChunkProxies]
itemProvider.incomingItems = [TimelineFixtures.incomingMessageProxy]
let roomProxy = JoinedRoomProxyMock(.init(name: "Small timeline", avatarURL: .mockMXCAvatar))
let timelineController = makeSignallingTimelineController(itemProvider: itemProvider, roomProxy: roomProxy)
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
@@ -398,9 +398,9 @@ class MockScreen: Identifiable {
case .roomSmallTimelineLargePagination:
let navigationStackCoordinator = NavigationStackCoordinator()
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: RoomTimelineItemFixtures.smallChunkProxies,
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: TimelineFixtures.smallChunkProxies,
listenForSignals: true)
itemProvider.backPaginationResponses = [RoomTimelineItemFixtures.largeChunkProxies]
itemProvider.backPaginationResponses = [TimelineFixtures.largeChunkProxies]
let roomProxy = JoinedRoomProxyMock(.init(name: "Small timeline, paginating", avatarURL: .mockMXCAvatar))
let timelineController = makeSignallingTimelineController(itemProvider: itemProvider, roomProxy: roomProxy)
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
@@ -423,9 +423,9 @@ class MockScreen: Identifiable {
case .roomLayoutTop:
let navigationStackCoordinator = NavigationStackCoordinator()
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: RoomTimelineItemFixtures.largeChunkProxies,
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: TimelineFixtures.largeChunkProxies,
listenForSignals: true)
itemProvider.backPaginationResponses = [RoomTimelineItemFixtures.largeChunkProxies]
itemProvider.backPaginationResponses = [TimelineFixtures.largeChunkProxies]
let roomProxy = JoinedRoomProxyMock(.init(name: "Large timeline", avatarURL: .mockMXCAvatar))
let timelineController = makeSignallingTimelineController(itemProvider: itemProvider, roomProxy: roomProxy)
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
@@ -449,10 +449,10 @@ class MockScreen: Identifiable {
case .roomLayoutMiddle:
let navigationStackCoordinator = NavigationStackCoordinator()
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: RoomTimelineItemFixtures.largeChunkProxies,
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: TimelineFixtures.largeChunkProxies,
listenForSignals: true)
itemProvider.backPaginationResponses = [RoomTimelineItemFixtures.largeChunkProxies]
itemProvider.incomingItems = [RoomTimelineItemFixtures.incomingMessageProxy]
itemProvider.backPaginationResponses = [TimelineFixtures.largeChunkProxies]
itemProvider.incomingItems = [TimelineFixtures.incomingMessageProxy]
let roomProxy = JoinedRoomProxyMock(.init(name: "Large timeline", avatarURL: .mockMXCAvatar))
let timelineController = makeSignallingTimelineController(itemProvider: itemProvider, roomProxy: roomProxy)
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
@@ -476,9 +476,9 @@ class MockScreen: Identifiable {
case .roomLayoutBottom:
let navigationStackCoordinator = NavigationStackCoordinator()
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: RoomTimelineItemFixtures.largeChunkProxies,
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: TimelineFixtures.largeChunkProxies,
listenForSignals: true)
itemProvider.incomingItems = [RoomTimelineItemFixtures.incomingMessageProxy]
itemProvider.incomingItems = [TimelineFixtures.incomingMessageProxy]
let roomProxy = JoinedRoomProxyMock(.init(name: "Large timeline", avatarURL: .mockMXCAvatar))
let timelineController = makeSignallingTimelineController(itemProvider: itemProvider, roomProxy: roomProxy)
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
@@ -502,7 +502,7 @@ class MockScreen: Identifiable {
case .roomLayoutHighlight:
let navigationStackCoordinator = NavigationStackCoordinator()
let timelineController = TimelineControllerMock(.init(timelineItems: RoomTimelineItemFixtures.permalinkChunk))
let timelineController = TimelineControllerMock(.init(timelineItems: TimelineFixtures.permalinkChunk))
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
roomProxy: JoinedRoomProxyMock(.init(name: "Timeline highlight", avatarURL: .mockMXCAvatar)),
timelineController: timelineController,
@@ -537,7 +537,7 @@ class MockScreen: Identifiable {
case .roomWithDisclosedPolls:
let navigationStackCoordinator = NavigationStackCoordinator()
let timelineController = TimelineControllerMock(.init(timelineItems: RoomTimelineItemFixtures.disclosedPolls))
let timelineController = TimelineControllerMock(.init(timelineItems: TimelineFixtures.disclosedPolls))
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
roomProxy: JoinedRoomProxyMock(.init(name: "Polls timeline", avatarURL: .mockMXCAvatar)),
timelineController: timelineController,
@@ -559,7 +559,7 @@ class MockScreen: Identifiable {
case .roomWithUndisclosedPolls:
let navigationStackCoordinator = NavigationStackCoordinator()
let timelineController = TimelineControllerMock(.init(timelineItems: RoomTimelineItemFixtures.undisclosedPolls))
let timelineController = TimelineControllerMock(.init(timelineItems: TimelineFixtures.undisclosedPolls))
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
roomProxy: JoinedRoomProxyMock(.init(name: "Polls timeline", avatarURL: .mockMXCAvatar)),
timelineController: timelineController,
@@ -581,7 +581,7 @@ class MockScreen: Identifiable {
case .roomWithOutgoingPolls:
let navigationStackCoordinator = NavigationStackCoordinator()
let timelineController = TimelineControllerMock(.init(timelineItems: RoomTimelineItemFixtures.outgoingPolls))
let timelineController = TimelineControllerMock(.init(timelineItems: TimelineFixtures.outgoingPolls))
let parameters = RoomScreenCoordinatorParameters(userSession: UserSessionMock(.init()),
roomProxy: JoinedRoomProxyMock(.init(name: "Polls timeline", avatarURL: .mockMXCAvatar)),
timelineController: timelineController,
@@ -635,7 +635,7 @@ class MockScreen: Identifiable {
let appMediator = AppMediatorMock(.init())
appMediator.windowManager = windowManager
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: RoomTimelineItemFixtures.largeChunkProxies)
let itemProvider = SignallingTimelineItemProviderMock(itemProxies: TimelineFixtures.largeChunkProxies)
let timelineController = makeSignallingTimelineController(itemProvider: itemProvider,
roomProxy: JoinedRoomProxyMock(.init()))