Swift Testing for Unit Tests PART 1 (#5119)

* migrated a lot of unit tests to Swift Testing and added a new implementation for deferred fulfillment

more tests migration

Cleaned the code manually to establish some good patterns

more code improvements

some more code improvements

removed empty tests

update project

* more pr suggestions and cleanups

* removed the TestSetup pattern

* fixing claude not reusing tests

* pr suggestion + added indent rule to swiftformat so that we can prevent AIs to change that
This commit is contained in:
Mauro
2026-02-19 16:20:47 +01:00
committed by GitHub
parent fc03e05697
commit 7982aef855
118 changed files with 4630 additions and 4129 deletions
+86 -74
View File
@@ -8,18 +8,19 @@
import Combine
@testable import ElementX
import XCTest
import Testing
@MainActor
class HomeScreenRoomTests: XCTestCase {
@Suite
struct HomeScreenRoomTests {
var roomSummary: RoomSummary!
func setupRoomSummary(isMarkedUnread: Bool,
unreadMessagesCount: UInt,
unreadMentionsCount: UInt,
unreadNotificationsCount: UInt,
notificationMode: RoomNotificationModeProxy,
hasOngoingCall: Bool) {
mutating func setupRoomSummary(isMarkedUnread: Bool,
unreadMessagesCount: UInt,
unreadMentionsCount: UInt,
unreadNotificationsCount: UInt,
notificationMode: RoomNotificationModeProxy,
hasOngoingCall: Bool) {
roomSummary = RoomSummary(room: .init(noHandle: .init()),
id: "Test room",
joinRequestType: nil,
@@ -44,7 +45,8 @@ class HomeScreenRoomTests: XCTestCase {
isTombstoned: false)
}
func testNoBadge() {
@Test
mutating func noBadge() {
setupRoomSummary(isMarkedUnread: false,
unreadMessagesCount: 0,
unreadMentionsCount: 0,
@@ -54,14 +56,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertFalse(room.isHighlighted)
XCTAssertFalse(room.badges.isDotShown)
XCTAssertFalse(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertFalse(room.badges.isMentionShown)
#expect(!room.isHighlighted)
#expect(!room.badges.isDotShown)
#expect(!room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(!room.badges.isMentionShown)
}
func testAllBadgesExceptMute() {
@Test
mutating func allBadgesExceptMute() {
setupRoomSummary(isMarkedUnread: true,
unreadMessagesCount: 5,
unreadMentionsCount: 5,
@@ -71,14 +74,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertTrue(room.isHighlighted)
XCTAssertTrue(room.badges.isDotShown)
XCTAssertTrue(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertTrue(room.badges.isMentionShown)
#expect(room.isHighlighted)
#expect(room.badges.isDotShown)
#expect(room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(room.badges.isMentionShown)
}
func testUnhighlightedDot() {
@Test
mutating func unhighlightedDot() {
setupRoomSummary(isMarkedUnread: false,
unreadMessagesCount: 5,
unreadMentionsCount: 0,
@@ -88,14 +92,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertFalse(room.isHighlighted)
XCTAssertTrue(room.badges.isDotShown)
XCTAssertFalse(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertFalse(room.badges.isMentionShown)
#expect(!room.isHighlighted)
#expect(room.badges.isDotShown)
#expect(!room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(!room.badges.isMentionShown)
}
func testHighlightedDot() {
@Test
mutating func highlightedDot() {
setupRoomSummary(isMarkedUnread: false,
unreadMessagesCount: 0,
unreadMentionsCount: 0,
@@ -105,14 +110,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertTrue(room.isHighlighted)
XCTAssertTrue(room.badges.isDotShown)
XCTAssertFalse(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertFalse(room.badges.isMentionShown)
#expect(room.isHighlighted)
#expect(room.badges.isDotShown)
#expect(!room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(!room.badges.isMentionShown)
}
func testHighlightedMentionAndDot() {
@Test
mutating func highlightedMentionAndDot() {
setupRoomSummary(isMarkedUnread: false,
unreadMessagesCount: 0,
unreadMentionsCount: 5,
@@ -122,14 +128,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertTrue(room.isHighlighted)
XCTAssertTrue(room.badges.isDotShown)
XCTAssertFalse(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertTrue(room.badges.isMentionShown)
#expect(room.isHighlighted)
#expect(room.badges.isDotShown)
#expect(!room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(room.badges.isMentionShown)
}
func testUnhighlightedCall() {
@Test
mutating func unhighlightedCall() {
setupRoomSummary(isMarkedUnread: false,
unreadMessagesCount: 0,
unreadMentionsCount: 0,
@@ -139,14 +146,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertFalse(room.isHighlighted)
XCTAssertFalse(room.badges.isDotShown)
XCTAssertTrue(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertFalse(room.badges.isMentionShown)
#expect(!room.isHighlighted)
#expect(!room.badges.isDotShown)
#expect(room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(!room.badges.isMentionShown)
}
func testMentionAndKeywordsUnhighlightedDot() {
@Test
mutating func mentionAndKeywordsUnhighlightedDot() {
setupRoomSummary(isMarkedUnread: false,
unreadMessagesCount: 10,
unreadMentionsCount: 0,
@@ -156,14 +164,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertFalse(room.isHighlighted)
XCTAssertTrue(room.badges.isDotShown)
XCTAssertFalse(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertFalse(room.badges.isMentionShown)
#expect(!room.isHighlighted)
#expect(room.badges.isDotShown)
#expect(!room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(!room.badges.isMentionShown)
}
func testMentionAndKeywordsUnhighlightedDotHidden() {
@Test
mutating func mentionAndKeywordsUnhighlightedDotHidden() {
setupRoomSummary(isMarkedUnread: false,
unreadMessagesCount: 10,
unreadMentionsCount: 0,
@@ -173,16 +182,17 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: true)
XCTAssertFalse(room.isHighlighted)
XCTAssertFalse(room.badges.isDotShown)
XCTAssertFalse(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertFalse(room.badges.isMentionShown)
#expect(!room.isHighlighted)
#expect(!room.badges.isDotShown)
#expect(!room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(!room.badges.isMentionShown)
}
// MARK: - Mark unread
func testMarkedUnreadDot() {
@Test
mutating func markedUnreadDot() {
setupRoomSummary(isMarkedUnread: true,
unreadMessagesCount: 0,
unreadMentionsCount: 0,
@@ -192,14 +202,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertTrue(room.isHighlighted)
XCTAssertTrue(room.badges.isDotShown)
XCTAssertFalse(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertFalse(room.badges.isMentionShown)
#expect(room.isHighlighted)
#expect(room.badges.isDotShown)
#expect(!room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(!room.badges.isMentionShown)
}
func testMarkedUnreadDotAndMention() {
@Test
mutating func markedUnreadDotAndMention() {
setupRoomSummary(isMarkedUnread: true,
unreadMessagesCount: 0,
unreadMentionsCount: 5,
@@ -209,14 +220,15 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertTrue(room.isHighlighted)
XCTAssertTrue(room.badges.isDotShown)
XCTAssertFalse(room.badges.isCallShown)
XCTAssertFalse(room.badges.isMuteShown)
XCTAssertTrue(room.badges.isMentionShown)
#expect(room.isHighlighted)
#expect(room.badges.isDotShown)
#expect(!room.badges.isCallShown)
#expect(!room.badges.isMuteShown)
#expect(room.badges.isMentionShown)
}
func testMarkedUnreadMuteDotAndCall() {
@Test
mutating func markedUnreadMuteDotAndCall() {
setupRoomSummary(isMarkedUnread: true,
unreadMessagesCount: 5,
unreadMentionsCount: 5,
@@ -226,10 +238,10 @@ class HomeScreenRoomTests: XCTestCase {
let room = HomeScreenRoom(summary: roomSummary, hideUnreadMessagesBadge: false)
XCTAssertTrue(room.isHighlighted)
XCTAssertTrue(room.badges.isDotShown)
XCTAssertTrue(room.badges.isCallShown)
XCTAssertTrue(room.badges.isMuteShown)
XCTAssertFalse(room.badges.isMentionShown)
#expect(room.isHighlighted)
#expect(room.badges.isDotShown)
#expect(room.badges.isCallShown)
#expect(room.badges.isMuteShown)
#expect(!room.badges.isMentionShown)
}
}