Skip to content

Commit b2541cf

Browse files
Added tests for read indicators
1 parent 1088555 commit b2541cf

File tree

7 files changed

+104
-0
lines changed

7 files changed

+104
-0
lines changed

StreamChatSwiftUI.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
/* Begin PBXBuildFile section */
1010
841B2EF4278DB9E500ED619E /* MessageListHelperViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841B2EF3278DB9E500ED619E /* MessageListHelperViews.swift */; };
11+
841B2EF6278F108700ED619E /* MessageReadIndicatorView_Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841B2EF5278F108700ED619E /* MessageReadIndicatorView_Tests.swift */; };
1112
841B64C427744DB60016FF3B /* ComposerModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841B64C327744DB60016FF3B /* ComposerModels.swift */; };
1213
841B64C82774BA770016FF3B /* CommandsHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841B64C72774BA770016FF3B /* CommandsHandler.swift */; };
1314
841B64CA2775BBC10016FF3B /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 841B64C92775BBC10016FF3B /* Errors.swift */; };
@@ -313,6 +314,7 @@
313314
/* Begin PBXFileReference section */
314315
4A65451E274BA170003C5FA8 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
315316
841B2EF3278DB9E500ED619E /* MessageListHelperViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageListHelperViews.swift; sourceTree = "<group>"; };
317+
841B2EF5278F108700ED619E /* MessageReadIndicatorView_Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageReadIndicatorView_Tests.swift; sourceTree = "<group>"; };
316318
841B64C327744DB60016FF3B /* ComposerModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposerModels.swift; sourceTree = "<group>"; };
317319
841B64C72774BA770016FF3B /* CommandsHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandsHandler.swift; sourceTree = "<group>"; };
318320
841B64C92775BBC10016FF3B /* Errors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = "<group>"; };
@@ -1162,6 +1164,7 @@
11621164
84AB7B20277203EF00631A10 /* GalleryView_Tests.swift */,
11631165
846608E6278C95E700D3D7B3 /* ChatChannelExtensions_Tests.swift */,
11641166
846608E8278C98CB00D3D7B3 /* TypingIndicatorView_Tests.swift */,
1167+
841B2EF5278F108700ED619E /* MessageReadIndicatorView_Tests.swift */,
11651168
84C94D4E2758FE59007FE2B9 /* ChatChannelTestHelpers.swift */,
11661169
);
11671170
path = ChatChannel;
@@ -1588,6 +1591,7 @@
15881591
8423C346277D9BFF0092DCF1 /* TestCommandsConfig.swift in Sources */,
15891592
84C94CE827578B92007FE2B9 /* ChatMessageController_Mock.swift in Sources */,
15901593
84C94CD127578B92007FE2B9 /* CurrentChatUser_Mock.swift in Sources */,
1594+
841B2EF6278F108700ED619E /* MessageReadIndicatorView_Tests.swift in Sources */,
15911595
84C94D0E27578BF2007FE2B9 /* AssertAsync.swift in Sources */,
15921596
84C94D1327578BF2007FE2B9 /* XCTestCase+MockJSON.swift in Sources */,
15931597
84C94D5E275A3AA9007FE2B9 /* ImageCDN_Tests.swift in Sources */,

StreamChatSwiftUITests/Tests/ChatChannel/ChatChannelExtensions_Tests.swift

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,4 +69,30 @@ class ChatChannelExtensions_Tests: XCTestCase {
6969
|| typingIndicatorString == "Martin and 1 more are typing"
7070
) // Any of the names can appear first.
7171
}
72+
73+
func test_readUsers_availableUsers() {
74+
// Given
75+
let user = ChatUser.mock(id: .unique)
76+
let messages = [ChatMessage.mock(id: .unique, cid: .unique, text: "Test", author: ChatUser.mock(id: .unique))]
77+
let read = ChatChannelRead(lastReadAt: Date(), unreadMessagesCount: 0, user: user)
78+
let channel = ChatChannel.mockDMChannel(reads: [read], latestMessages: messages)
79+
80+
// When
81+
let readUsers = channel.readUsers(currentUserId: nil)
82+
83+
// Then
84+
XCTAssert(readUsers.count == 1)
85+
XCTAssert(readUsers[0] == user)
86+
}
87+
88+
func test_readUsers_empty() {
89+
// Given
90+
let channel = ChatChannel.mockDMChannel(reads: [])
91+
92+
// When
93+
let readUsers = channel.readUsers(currentUserId: nil)
94+
95+
// Then
96+
XCTAssert(readUsers.isEmpty)
97+
}
7298
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
//
2+
// Copyright © 2022 Stream.io Inc. All rights reserved.
3+
//
4+
5+
import SnapshotTesting
6+
@testable import StreamChat
7+
@testable import StreamChatSwiftUI
8+
import XCTest
9+
10+
class MessageReadIndicatorView_Tests: XCTestCase {
11+
12+
private var chatClient: ChatClient = {
13+
let client = ChatClient.mock()
14+
client.currentUserId = .unique
15+
return client
16+
}()
17+
18+
private var streamChat: StreamChat?
19+
20+
override func setUp() {
21+
super.setUp()
22+
streamChat = StreamChat(chatClient: chatClient)
23+
}
24+
25+
func test_messageReadIndicatorView_snapshotMessageSent() {
26+
// Given
27+
let view = MessageReadIndicatorView(
28+
readUsers: [],
29+
showReadCount: false
30+
)
31+
.frame(width: 50, height: 16)
32+
33+
// Then
34+
assertSnapshot(matching: view, as: .image)
35+
}
36+
37+
func test_messageReadIndicatorView_snapshotMessageReadDirect() {
38+
// Given
39+
let view = MessageReadIndicatorView(
40+
readUsers: [.mock(id: .unique)],
41+
showReadCount: false
42+
)
43+
.frame(width: 50, height: 16)
44+
45+
// Then
46+
assertSnapshot(matching: view, as: .image)
47+
}
48+
49+
func test_messageReadIndicatorView_snapshotMessageReadGroup() {
50+
// Given
51+
let view = MessageReadIndicatorView(
52+
readUsers: [.mock(id: .unique)],
53+
showReadCount: true
54+
)
55+
.frame(width: 50, height: 16)
56+
57+
// Then
58+
assertSnapshot(matching: view, as: .image)
59+
}
60+
}
Loading
Loading
Loading

StreamChatSwiftUITests/Tests/Utils/ViewFactory_Tests.swift

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,20 @@ class ViewFactory_Tests: XCTestCase {
520520
// Then
521521
XCTAssert(view is TrailingSwipeActionsView)
522522
}
523+
524+
func test_viewFactory_makeMessageReadIndicatorView() {
525+
// Given
526+
let viewFactory = DefaultViewFactory.shared
527+
528+
// When
529+
let view = viewFactory.makeMessageReadIndicatorView(
530+
readUsers: [],
531+
showReadCount: false
532+
)
533+
534+
// Then
535+
XCTAssert(view is MessageReadIndicatorView)
536+
}
523537
}
524538

525539
extension ChannelAction: Equatable {

0 commit comments

Comments
 (0)