Skip to content

Commit 9624e4c

Browse files
committed
Fix tests.
1 parent a08bb84 commit 9624e4c

File tree

1 file changed

+36
-40
lines changed

1 file changed

+36
-40
lines changed

UnitTests/Sources/RoomListFiltersStateTests.swift

Lines changed: 36 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -10,49 +10,58 @@ import XCTest
1010
@testable import ElementX
1111

1212
final class RoomListFiltersStateTests: XCTestCase {
13+
var appSettings: AppSettings!
14+
1315
var state: RoomListFiltersState!
16+
var allCasesWithoutLowPriority = RoomListFilter.allCases.filter { $0 != .lowPriority }
1417

1518
override func setUp() {
16-
state = RoomListFiltersState()
19+
AppSettings.resetAllSettings()
20+
appSettings = AppSettings()
21+
state = RoomListFiltersState(appSettings: appSettings)
22+
}
23+
24+
override func tearDown() {
25+
AppSettings.resetAllSettings()
1726
}
1827

1928
func testInitialState() {
2029
XCTAssertFalse(state.isFiltering)
2130
XCTAssertEqual(state.activeFilters, [])
22-
XCTAssertEqual(state.availableFilters, RoomListFilter.allCases)
31+
XCTAssertEqual(state.availableFilters, allCasesWithoutLowPriority)
2332
}
2433

2534
func testSetAndUnsetFilters() {
2635
state.activateFilter(.unreads)
2736
XCTAssertTrue(state.isFiltering)
2837
XCTAssertEqual(state.activeFilters, [.unreads])
29-
XCTAssertEqual(state.availableFilters, [.people, .rooms, .favourites, .lowPriority])
38+
XCTAssertEqual(state.availableFilters, [.people, .rooms, .favourites])
3039
state.deactivateFilter(.unreads)
3140
XCTAssertFalse(state.isFiltering)
3241
XCTAssertEqual(state.activeFilters, [])
33-
XCTAssertEqual(state.availableFilters, RoomListFilter.allCases)
42+
XCTAssertEqual(state.availableFilters, allCasesWithoutLowPriority)
3443
}
3544

3645
func testMutuallyExclusiveFilters() {
3746
state.activateFilter(.people)
3847
XCTAssertTrue(state.isFiltering)
3948
XCTAssertEqual(state.activeFilters, [.people])
40-
XCTAssertEqual(state.availableFilters, [.unreads, .favourites, .lowPriority])
49+
XCTAssertEqual(state.availableFilters, [.unreads, .favourites])
4150

4251
state.deactivateFilter(.people)
4352
XCTAssertFalse(state.isFiltering)
4453
XCTAssertEqual(state.activeFilters, [])
45-
XCTAssertEqual(state.availableFilters, RoomListFilter.allCases)
54+
XCTAssertEqual(state.availableFilters, allCasesWithoutLowPriority)
4655

4756
state.activateFilter(.rooms)
4857
XCTAssertTrue(state.isFiltering)
4958
XCTAssertEqual(state.activeFilters, [.rooms])
50-
XCTAssertEqual(state.availableFilters, [.unreads, .favourites, .lowPriority])
59+
XCTAssertEqual(state.availableFilters, [.unreads, .favourites])
5160

5261
state.activateFilter(.unreads)
5362
XCTAssertTrue(state.isFiltering)
5463
XCTAssertEqual(state.activeFilters, [.rooms, .unreads])
55-
XCTAssertEqual(state.availableFilters, [.favourites, .lowPriority])
64+
XCTAssertEqual(state.availableFilters, [.favourites])
5665
}
5766

5867
func testClearFilters() {
@@ -71,7 +80,7 @@ final class RoomListFiltersStateTests: XCTestCase {
7180
state.clearFilters()
7281
XCTAssertFalse(state.isFiltering)
7382
XCTAssertEqual(state.activeFilters, [])
74-
XCTAssertEqual(state.availableFilters, RoomListFilter.allCases)
83+
XCTAssertEqual(state.availableFilters, allCasesWithoutLowPriority)
7584
}
7685

7786
func testOrder() {
@@ -81,52 +90,39 @@ final class RoomListFiltersStateTests: XCTestCase {
8190

8291
state.deactivateFilter(.favourites)
8392
XCTAssertEqual(state.activeFilters, [])
84-
XCTAssertEqual(state.availableFilters, RoomListFilter.allCases)
93+
XCTAssertEqual(state.availableFilters, allCasesWithoutLowPriority)
8594

8695
state.activateFilter(.rooms)
8796
XCTAssertEqual(state.activeFilters, [.rooms])
88-
XCTAssertEqual(state.availableFilters, [.unreads, .favourites, .lowPriority])
97+
XCTAssertEqual(state.availableFilters, [.unreads, .favourites])
8998

9099
state.activateFilter(.unreads)
91100
XCTAssertEqual(state.activeFilters, [.rooms, .unreads])
92-
XCTAssertEqual(state.availableFilters, [.favourites, .lowPriority])
101+
XCTAssertEqual(state.availableFilters, [.favourites])
93102

94103
state.deactivateFilter(.unreads)
95104
XCTAssertEqual(state.activeFilters, [.rooms])
96-
XCTAssertEqual(state.availableFilters, [.unreads, .favourites, .lowPriority])
105+
XCTAssertEqual(state.availableFilters, [.unreads, .favourites])
97106
}
98107

99-
func testLowPriorityFilterIncompatibility() {
100-
// Test that low priority cannot be combined with favourites
108+
// MARK: Low Priority feature flag
109+
110+
// Don't forget to add .lowPriority into the mix above when enabling the feature.
111+
func testWithLowPriorityFeature() {
112+
enableLowPriorityFeature()
113+
XCTAssertFalse(state.isFiltering)
114+
XCTAssertEqual(state.activeFilters, [])
115+
XCTAssertEqual(state.availableFilters, RoomListFilter.allCases)
116+
101117
state.activateFilter(.lowPriority)
102-
XCTAssertTrue(state.isFiltering)
103118
XCTAssertEqual(state.activeFilters, [.lowPriority])
104119
XCTAssertEqual(state.availableFilters, [.unreads, .people, .rooms])
105-
106-
// Test that low priority cannot be combined with invites
107-
state.deactivateFilter(.lowPriority)
108-
state.activateFilter(.invites)
109-
XCTAssertTrue(state.isFiltering)
110-
XCTAssertEqual(state.activeFilters, [.invites])
111-
XCTAssertEqual(state.availableFilters, [])
112-
113-
// Test that favourites cannot be combined with low priority
114-
state.deactivateFilter(.invites)
115-
state.activateFilter(.favourites)
116-
XCTAssertTrue(state.isFiltering)
117-
XCTAssertEqual(state.activeFilters, [.favourites])
118-
XCTAssertEqual(state.availableFilters, [.unreads, .people, .rooms])
119120
}
120121

121-
func testLowPriorityFilterCompatibility() {
122-
// Test that low priority can be combined with other compatible filters
123-
state.activateFilter(.lowPriority)
124-
state.activateFilter(.unreads)
125-
XCTAssertEqual(state.activeFilters, [.lowPriority, .unreads])
126-
XCTAssertEqual(state.availableFilters, [.people, .rooms])
127-
128-
state.activateFilter(.people)
129-
XCTAssertEqual(state.activeFilters, [.lowPriority, .unreads, .people])
130-
XCTAssertEqual(state.availableFilters, [])
122+
// MARK: - Helpers
123+
124+
private func enableLowPriorityFeature() {
125+
appSettings.lowPriorityFilterEnabled = true
126+
state = RoomListFiltersState(appSettings: appSettings)
131127
}
132128
}

0 commit comments

Comments
 (0)