@@ -26,7 +26,7 @@ final class RoomListFiltersStateTests: XCTestCase {
26
26
state. activateFilter ( . unreads)
27
27
XCTAssertTrue ( state. isFiltering)
28
28
XCTAssertEqual ( state. activeFilters, [ . unreads] )
29
- XCTAssertEqual ( state. availableFilters, [ . people, . rooms, . favourites] )
29
+ XCTAssertEqual ( state. availableFilters, [ . people, . rooms, . favourites, . lowPriority ] )
30
30
state. deactivateFilter ( . unreads)
31
31
XCTAssertFalse ( state. isFiltering)
32
32
XCTAssertEqual ( state. activeFilters, [ ] )
@@ -37,7 +37,7 @@ final class RoomListFiltersStateTests: XCTestCase {
37
37
state. activateFilter ( . people)
38
38
XCTAssertTrue ( state. isFiltering)
39
39
XCTAssertEqual ( state. activeFilters, [ . people] )
40
- XCTAssertEqual ( state. availableFilters, [ . unreads, . favourites] )
40
+ XCTAssertEqual ( state. availableFilters, [ . unreads, . favourites, . lowPriority ] )
41
41
42
42
state. deactivateFilter ( . people)
43
43
XCTAssertFalse ( state. isFiltering)
@@ -47,12 +47,12 @@ final class RoomListFiltersStateTests: XCTestCase {
47
47
state. activateFilter ( . rooms)
48
48
XCTAssertTrue ( state. isFiltering)
49
49
XCTAssertEqual ( state. activeFilters, [ . rooms] )
50
- XCTAssertEqual ( state. availableFilters, [ . unreads, . favourites] )
50
+ XCTAssertEqual ( state. availableFilters, [ . unreads, . favourites, . lowPriority ] )
51
51
52
52
state. activateFilter ( . unreads)
53
53
XCTAssertTrue ( state. isFiltering)
54
54
XCTAssertEqual ( state. activeFilters, [ . rooms, . unreads] )
55
- XCTAssertEqual ( state. availableFilters, [ . favourites] )
55
+ XCTAssertEqual ( state. availableFilters, [ . favourites, . lowPriority ] )
56
56
}
57
57
58
58
func testClearFilters( ) {
@@ -85,14 +85,48 @@ final class RoomListFiltersStateTests: XCTestCase {
85
85
86
86
state. activateFilter ( . rooms)
87
87
XCTAssertEqual ( state. activeFilters, [ . rooms] )
88
- XCTAssertEqual ( state. availableFilters, [ . unreads, . favourites] )
88
+ XCTAssertEqual ( state. availableFilters, [ . unreads, . favourites, . lowPriority ] )
89
89
90
90
state. activateFilter ( . unreads)
91
91
XCTAssertEqual ( state. activeFilters, [ . rooms, . unreads] )
92
- XCTAssertEqual ( state. availableFilters, [ . favourites] )
92
+ XCTAssertEqual ( state. availableFilters, [ . favourites, . lowPriority ] )
93
93
94
94
state. deactivateFilter ( . unreads)
95
95
XCTAssertEqual ( state. activeFilters, [ . rooms] )
96
- XCTAssertEqual ( state. availableFilters, [ . unreads, . favourites] )
96
+ XCTAssertEqual ( state. availableFilters, [ . unreads, . favourites, . lowPriority] )
97
+ }
98
+
99
+ func testLowPriorityFilterIncompatibility( ) {
100
+ // Test that low priority cannot be combined with favourites
101
+ state. activateFilter ( . lowPriority)
102
+ XCTAssertTrue ( state. isFiltering)
103
+ XCTAssertEqual ( state. activeFilters, [ . lowPriority] )
104
+ 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] )
119
+ }
120
+
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, [ ] )
97
131
}
98
132
}
0 commit comments