@@ -43,6 +43,7 @@ void main() {
43
43
int ? messageCount,
44
44
List <Message >? messages,
45
45
List <ZulipStream >? streams,
46
+ List <User >? users,
46
47
List <Subscription >? subscriptions,
47
48
UnreadMessagesSnapshot ? unreadMsgs,
48
49
}) async {
@@ -55,6 +56,7 @@ void main() {
55
56
56
57
// prepare message list data
57
58
store.addUser (eg.selfUser);
59
+ store.addUsers (users ?? []);
58
60
assert ((messageCount == null ) != (messages == null ));
59
61
messages ?? = List .generate (messageCount! , (index) {
60
62
return eg.streamMessage (sender: eg.selfUser);
@@ -479,6 +481,49 @@ void main() {
479
481
480
482
debugNetworkImageHttpClientProvider = null ;
481
483
});
484
+
485
+ testWidgets ('Bot user is distinguished by showing an icon' , (tester) async {
486
+ // When using this function, provide only one bot user
487
+ // to [PerAccountStore] through [setupMessageListPage] function.
488
+ void checkUser (User user, {required bool isBot}) {
489
+ final nameFinder = find.text (user.fullName);
490
+ final botFinder = find.byIcon (ZulipIcons .bot);
491
+
492
+ check (nameFinder.evaluate ().singleOrNull).isNotNull ();
493
+ check (botFinder.evaluate ().singleOrNull).isNotNull ();
494
+
495
+ final userFinder = find.ancestor (
496
+ of: nameFinder,
497
+ matching: find.ancestor (
498
+ of: botFinder,
499
+ matching: find.byType (Row ),
500
+ ));
501
+
502
+ isBot
503
+ ? check (userFinder.evaluate ()).isNotEmpty ()
504
+ : check (userFinder.evaluate ()).isEmpty ();
505
+ }
506
+
507
+ prepareBoringImageHttpClient ();
508
+
509
+ final users = [
510
+ eg.user (fullName: 'User 1' , isBot: true ),
511
+ eg.user (fullName: 'User 2' , isBot: false ),
512
+ eg.user (fullName: 'User 3' , isBot: false ),
513
+ ];
514
+
515
+ await setupMessageListPage (
516
+ tester,
517
+ messages: users.map ((user) => eg.streamMessage (sender: user)).toList (),
518
+ users: users,
519
+ );
520
+
521
+ checkUser (users[0 ], isBot: true );
522
+ checkUser (users[1 ], isBot: false );
523
+ checkUser (users[2 ], isBot: false );
524
+
525
+ debugNetworkImageHttpClientProvider = null ;
526
+ });
482
527
});
483
528
484
529
group ('Starred messages' , () {
0 commit comments