@@ -42,4 +42,29 @@ void main() {
42
42
await setupChannelListPage (tester, streams: streams, subscriptions: []);
43
43
check (getItemCount ()).equals (3 );
44
44
});
45
+
46
+ group ('list ordering' , () {
47
+ Iterable <String > listedStreamNames (WidgetTester tester) => tester
48
+ .widgetList <ChannelItem >(find.byType (ChannelItem ))
49
+ .map ((e) => e.stream.name);
50
+
51
+ List <ZulipStream > streamsFromNames (List <String > names) {
52
+ return names.map ((name) => eg.stream (name: name)).toList ();
53
+ }
54
+
55
+ testWidgets ('is alphabetically case-insensitive' , (tester) async {
56
+ final streams = streamsFromNames (['b' , 'C' , 'A' ]);
57
+ await setupChannelListPage (tester, streams: streams, subscriptions: []);
58
+
59
+ check (listedStreamNames (tester)).deepEquals (['A' , 'b' , 'C' ]);
60
+ });
61
+
62
+ testWidgets ('is insensitive of user subscription' , (tester) async {
63
+ final streams = streamsFromNames (['b' , 'c' , 'a' ]);
64
+ await setupChannelListPage (tester, streams: streams,
65
+ subscriptions: [eg.subscription (streams[0 ])]);
66
+
67
+ check (listedStreamNames (tester)).deepEquals (['a' , 'b' , 'c' ]);
68
+ });
69
+ });
45
70
}
0 commit comments