Skip to content

Commit 458bef6

Browse files
Updated StreamChat dependency
1 parent 7f9a73d commit 458bef6

File tree

8 files changed

+115
-16
lines changed

8 files changed

+115
-16
lines changed

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ let package = Package(
1717
)
1818
],
1919
dependencies: [
20-
.package(url: "https://github.com/GetStream/stream-chat-swift.git", from: "4.22.0"),
20+
.package(url: "https://github.com/GetStream/stream-chat-swift.git", from: "4.23.0"),
2121
.package(url: "https://github.com/kean/Nuke.git", .exact("11.3.0"))
2222
],
2323
targets: [

StreamChatSwiftUI.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Pod::Spec.new do |spec|
1919

2020
spec.framework = "Foundation", "UIKit", "SwiftUI"
2121

22-
spec.dependency "StreamChat", "~> 4.22.0"
22+
spec.dependency "StreamChat", "~> 4.23.0"
2323
spec.dependency "SwiftyGif", "~> 5.0"
2424
spec.dependency "NukeUI", "0.8.0"
2525
end

StreamChatSwiftUI.xcodeproj/project.pbxproj

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
8421BCEC27A400E8000F977D /* ReactionsUsersView_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8421BCEB27A400E8000F977D /* ReactionsUsersView_Tests.swift */; };
3535
8421BCEE27A43E14000F977D /* SearchBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8421BCED27A43E14000F977D /* SearchBar.swift */; };
3636
8421BCF027A44EAE000F977D /* SearchResultsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8421BCEF27A44EAE000F977D /* SearchResultsView.swift */; };
37-
842383E02767394200888CFC /* ChatChannelDataSource_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842383DF2767394200888CFC /* ChatChannelDataSource_Tests.swift */; };
3837
842383E427678A4D00888CFC /* QuotedMessageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842383E327678A4D00888CFC /* QuotedMessageView.swift */; };
3938
8423C33D277C94F30092DCF1 /* TwoStepMentionCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8423C33C277C94F30092DCF1 /* TwoStepMentionCommand.swift */; };
4039
8423C33F277C9A5F0092DCF1 /* UnmuteCommandHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8423C33E277C9A5F0092DCF1 /* UnmuteCommandHandler.swift */; };
@@ -278,6 +277,9 @@
278277
84C94D66275A660B007FE2B9 /* MessageActionsViewModel_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C94D65275A660B007FE2B9 /* MessageActionsViewModel_Tests.swift */; };
279278
84C94D68275A6AFD007FE2B9 /* ChannelHeaderLoader_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C94D67275A6AFD007FE2B9 /* ChannelHeaderLoader_Tests.swift */; };
280279
84CAD77B284E5AAA00F28C17 /* MessageListViewLastGroupHeader_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CAD77A284E5AAA00F28C17 /* MessageListViewLastGroupHeader_Tests.swift */; };
280+
84CC3731290B095E00689B73 /* ChatChannelDataSource_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 842383DF2767394200888CFC /* ChatChannelDataSource_Tests.swift */; };
281+
84CC3732290B0A4000689B73 /* StreamChatModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 84E57C5528103822002213C1 /* StreamChatModel.xcdatamodeld */; };
282+
84CC3734290B0C2900689B73 /* ChatMessageControllerSUI_Mock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84CC3733290B0C2900689B73 /* ChatMessageControllerSUI_Mock.swift */; };
281283
84D419BA28EAD20C00F574F9 /* ChatMessageBubbles_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D419B928EAD20C00F574F9 /* ChatMessageBubbles_Tests.swift */; };
282284
84D6B55A27DF6EC7009C6D07 /* LoadingView_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D6B55927DF6EC7009C6D07 /* LoadingView_Tests.swift */; };
283285
84D77B58289D3CF800C241CE /* MessageListViewAvatars_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84D77B57289D3CF800C241CE /* MessageListViewAvatars_Tests.swift */; };
@@ -305,7 +307,6 @@
305307
84E04797284A444E00BAFA17 /* WebSocketPingControllerMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847BA08627E0BACB00ED20C7 /* WebSocketPingControllerMock.swift */; };
306308
84E04798284A444E00BAFA17 /* InternetConnectionMock.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84C94D23275794D3007FE2B9 /* InternetConnectionMock.swift */; };
307309
84E57C5928103822002213C1 /* TestDataModel2.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 84E57C5328103822002213C1 /* TestDataModel2.xcdatamodeld */; };
308-
84E57C5A28103822002213C1 /* StreamChatModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 84E57C5528103822002213C1 /* StreamChatModel.xcdatamodeld */; };
309310
84E57C5B28103822002213C1 /* TestDataModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = 84E57C5728103822002213C1 /* TestDataModel.xcdatamodeld */; };
310311
84E6EC23279AEE6B0017207B /* MessageContainerView_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E6EC22279AEE6B0017207B /* MessageContainerView_Tests.swift */; };
311312
84E6EC25279AEE9F0017207B /* StreamChatTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84E6EC24279AEE9F0017207B /* StreamChatTestCase.swift */; };
@@ -689,6 +690,7 @@
689690
84C94D65275A660B007FE2B9 /* MessageActionsViewModel_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageActionsViewModel_Tests.swift; sourceTree = "<group>"; };
690691
84C94D67275A6AFD007FE2B9 /* ChannelHeaderLoader_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelHeaderLoader_Tests.swift; sourceTree = "<group>"; };
691692
84CAD77A284E5AAA00F28C17 /* MessageListViewLastGroupHeader_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageListViewLastGroupHeader_Tests.swift; sourceTree = "<group>"; };
693+
84CC3733290B0C2900689B73 /* ChatMessageControllerSUI_Mock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageControllerSUI_Mock.swift; sourceTree = "<group>"; };
692694
84D419B928EAD20C00F574F9 /* ChatMessageBubbles_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageBubbles_Tests.swift; sourceTree = "<group>"; };
693695
84D6B55927DF6EC7009C6D07 /* LoadingView_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView_Tests.swift; sourceTree = "<group>"; };
694696
84D77B57289D3CF800C241CE /* MessageListViewAvatars_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageListViewAvatars_Tests.swift; sourceTree = "<group>"; };
@@ -1351,6 +1353,7 @@
13511353
847BA08427E0BA2500ED20C7 /* EventNotificationCenterMock.swift */,
13521354
847BA08627E0BACB00ED20C7 /* WebSocketPingControllerMock.swift */,
13531355
847BA08827E0BAEE00ED20C7 /* WebSocketEngineMock.swift */,
1356+
84CC3733290B0C2900689B73 /* ChatMessageControllerSUI_Mock.swift */,
13541357
);
13551358
path = Mocks;
13561359
sourceTree = "<group>";
@@ -2004,7 +2007,6 @@
20042007
84E0478E284A444E00BAFA17 /* WebSocketEngineMock.swift in Sources */,
20052008
84C94D4D2758FD5C007FE2B9 /* MessageComposerViewModel_Tests.swift in Sources */,
20062009
84C94D62275A5BB7007FE2B9 /* ChatChannelNamer_Tests.swift in Sources */,
2007-
84E57C5A28103822002213C1 /* StreamChatModel.xcdatamodeld in Sources */,
20082010
840A3F3828193AB20084E9CC /* ChatChannelInfoView_Tests.swift in Sources */,
20092011
84C94D492758BE1C007FE2B9 /* ChatChannelViewModel_Tests.swift in Sources */,
20102012
842F036D288E93BF00496D49 /* ChatMessage_AdjustedText_Tests.swift in Sources */,
@@ -2033,18 +2035,20 @@
20332035
84AB7B21277203EF00631A10 /* GalleryView_Tests.swift in Sources */,
20342036
84E0478D284A444E00BAFA17 /* ImageLoader_Mock.swift in Sources */,
20352037
8423C348277DBBDA0092DCF1 /* InstantCommandsHandler_Tests.swift in Sources */,
2036-
842383E02767394200888CFC /* ChatChannelDataSource_Tests.swift in Sources */,
20372038
84DEC8DF2760A1D100172876 /* MessageView_Tests.swift in Sources */,
20382039
847F7949282A91AD0009F74C /* ChatChannelView_Tests.swift in Sources */,
2040+
84CC3734290B0C2900689B73 /* ChatMessageControllerSUI_Mock.swift in Sources */,
20392041
91B763A6283EB39600B458A9 /* MoreChannelActionsFullScreenWrappingView_Tests.swift in Sources */,
20402042
846608E9278C98CB00D3D7B3 /* TypingIndicatorView_Tests.swift in Sources */,
20412043
8421BCEC27A400E8000F977D /* ReactionsUsersView_Tests.swift in Sources */,
20422044
84E04794284A444E00BAFA17 /* APIClient_Mock.swift in Sources */,
20432045
844D1D682851DE58000CCCB9 /* ChannelControllerFactory_Tests.swift in Sources */,
2046+
84CC3731290B095E00689B73 /* ChatChannelDataSource_Tests.swift in Sources */,
20442047
84B439E127C6B2F100C04C99 /* MessageCachingUtils_Tests.swift in Sources */,
20452048
8423C346277D9BFF0092DCF1 /* TestCommandsConfig.swift in Sources */,
20462049
84B2B5D82819778D00479CEE /* FileAttachmentsViewModel_Tests.swift in Sources */,
20472050
841B2EF6278F108700ED619E /* MessageReadIndicatorView_Tests.swift in Sources */,
2051+
84CC3732290B0A4000689B73 /* StreamChatModel.xcdatamodeld in Sources */,
20482052
84E04790284A444E00BAFA17 /* CDNClient_Mock.swift in Sources */,
20492053
84E04796284A444E00BAFA17 /* EventBatcherMock.swift in Sources */,
20502054
84E57C5B28103822002213C1 /* TestDataModel.xcdatamodeld in Sources */,
@@ -2657,7 +2661,7 @@
26572661
repositoryURL = "https://github.com/GetStream/stream-chat-swift.git";
26582662
requirement = {
26592663
kind = upToNextMajorVersion;
2660-
minimumVersion = 4.22.0;
2664+
minimumVersion = 4.23.0;
26612665
};
26622666
};
26632667
A3571601283E9D9F0014E3B0 /* XCRemoteSwiftPackageReference "swifter" */ = {
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
//
2+
// Copyright © 2022 Stream.io Inc. All rights reserved.
3+
//
4+
5+
import Foundation
6+
@testable import StreamChat
7+
@testable import StreamChatTestTools
8+
9+
public class ChatMessageControllerSUI_Mock: ChatMessageController {
10+
/// Creates a new mock instance of `ChatMessageController`.
11+
public static func mock(
12+
chatClient: ChatClient,
13+
currentUserId: UserId = "ID",
14+
cid: ChannelId? = nil,
15+
messageId: String = "MockMessage"
16+
) -> ChatMessageController_Mock {
17+
if let authenticationRepository = chatClient.authenticationRepository as? AuthenticationRepository_Mock {
18+
authenticationRepository.mockedCurrentUserId = currentUserId
19+
}
20+
var channelId = cid
21+
if channelId == nil {
22+
channelId = try! .init(cid: "mock:channel")
23+
}
24+
return .init(client: chatClient, cid: channelId!, messageId: messageId)
25+
}
26+
27+
public var message_mock: ChatMessage?
28+
override public var message: ChatMessage? {
29+
message_mock ?? super.message
30+
}
31+
32+
public var replies_mock: [ChatMessage]?
33+
override public var replies: LazyCachedMapCollection<ChatMessage> {
34+
replies_mock.map { $0.lazyCachedMap { $0 } } ?? super.replies
35+
}
36+
37+
public var state_mock: State?
38+
override public var state: DataController.State {
39+
get { state_mock ?? super.state }
40+
set { super.state = newValue }
41+
}
42+
43+
public var startObserversIfNeeded_mock: (() -> Void)?
44+
override public func startObserversIfNeeded() {
45+
if let mock = startObserversIfNeeded_mock {
46+
mock()
47+
return
48+
}
49+
50+
super.startObserversIfNeeded()
51+
}
52+
53+
var synchronize_callCount = 0
54+
override public func synchronize(_ completion: ((Error?) -> Void)? = nil) {
55+
synchronize_callCount += 1
56+
}
57+
}
58+
59+
public extension ChatMessageControllerSUI_Mock {
60+
/// Simulates the initial conditions. Setting these values doesn't trigger any observer callback.
61+
func simulateInitial(message: ChatMessage, replies: [ChatMessage], state: DataController.State) {
62+
message_mock = message
63+
replies_mock = replies
64+
state_mock = state
65+
// Initial simulation should also have a user pre-created
66+
try? client.databaseContainer.createCurrentUser()
67+
}
68+
69+
/// Simulates a change of the `message` value. Observers are notified with the provided `change` value.
70+
func simulate(message: ChatMessage?, change: EntityChange<ChatMessage>) {
71+
message_mock = message
72+
delegateCallback {
73+
$0.messageController(self, didChangeMessage: change)
74+
}
75+
}
76+
77+
/// Simulates changes in the `replies` array. Observers are notified with the provided `changes` value.
78+
func simulate(replies: [ChatMessage], changes: [ListChange<ChatMessage>]) {
79+
replies_mock = replies
80+
delegateCallback {
81+
$0.messageController(self, didChangeReplies: changes)
82+
}
83+
}
84+
85+
/// Simulates changes of `state`. Observers are notified with the new value.
86+
func simulate(state: DataController.State) {
87+
state_mock = state
88+
delegateCallback {
89+
$0.controller(self, didChangeState: state)
90+
}
91+
}
92+
}

StreamChatSwiftUITests/Tests/ChatChannel/ChatChannelDataSource_Tests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ class ChatChannelDataSource_Tests: StreamChatTestCase {
8686
// Given
8787
let channel = ChatChannel.mockDMChannel()
8888
let expected: [ChatMessage] = [message]
89-
let messageController = ChatMessageController_Mock.mock(
90-
client: chatClient,
89+
let messageController = ChatMessageControllerSUI_Mock.mock(
90+
chatClient: chatClient,
9191
cid: channel.cid,
9292
messageId: message.id
9393
)
@@ -113,8 +113,8 @@ class ChatChannelDataSource_Tests: StreamChatTestCase {
113113
// Given
114114
let channel = ChatChannel.mockDMChannel()
115115
let expected: [ChatMessage] = [message]
116-
let messageController = ChatMessageController_Mock.mock(
117-
client: chatClient,
116+
let messageController = ChatMessageControllerSUI_Mock.mock(
117+
chatClient: chatClient,
118118
cid: channel.cid,
119119
messageId: message.id
120120
)

StreamChatSwiftUITests/Tests/ChatChannel/ChatChannelViewModel_Tests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ class ChatChannelViewModel_Tests: StreamChatTestCase {
152152
func test_chatChannelVM_messageThread() {
153153
// Given
154154
let channelController = makeChannelController()
155-
let messageController = ChatMessageController_Mock.mock(
156-
client: chatClient,
155+
let messageController = ChatMessageControllerSUI_Mock.mock(
156+
chatClient: chatClient,
157157
cid: .unique,
158158
messageId: .unique
159159
)

StreamChatSwiftUITests/Tests/ChatChannel/MessageComposerViewModel_Tests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,8 +347,8 @@ class MessageComposerViewModel_Tests: StreamChatTestCase {
347347
func test_messageComposerVM_inThread() {
348348
// Given
349349
let channelController = makeChannelController()
350-
let messageController = ChatMessageController_Mock.mock(
351-
client: chatClient,
350+
let messageController = ChatMessageControllerSUI_Mock.mock(
351+
chatClient: chatClient,
352352
cid: .unique,
353353
messageId: .unique
354354
)

StreamChatSwiftUITests/Tests/StreamChatTestCase.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ open class StreamChatTestCase: XCTestCase {
1515

1616
public var chatClient: ChatClient = {
1717
let client = ChatClient.mock(isLocalStorageEnabled: false)
18-
client.currentUserId = currentUserId
18+
let tokenValue =
19+
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoibHVrZV9za3l3YWxrZXIifQ.b6EiC8dq2AHk0JPfI-6PN-AM9TVzt8JV-qB1N9kchlI"
20+
let token = try! Token(rawValue: tokenValue)
21+
client.connectUser(userInfo: .init(id: currentUserId), token: token)
1922
return client
2023
}()
2124

0 commit comments

Comments
 (0)