@@ -43,6 +43,7 @@ void main() {
4343 int ? messageCount,
4444 List <Message >? messages,
4545 List <ZulipStream >? streams,
46+ List <User >? users,
4647 List <Subscription >? subscriptions,
4748 UnreadMessagesSnapshot ? unreadMsgs,
4849 }) async {
@@ -55,6 +56,7 @@ void main() {
5556
5657 // prepare message list data
5758 store.addUser (eg.selfUser);
59+ store.addUsers (users ?? []);
5860 assert ((messageCount == null ) != (messages == null ));
5961 messages ?? = List .generate (messageCount! , (index) {
6062 return eg.streamMessage (sender: eg.selfUser);
@@ -479,6 +481,49 @@ void main() {
479481
480482 debugNetworkImageHttpClientProvider = null ;
481483 });
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+ });
482527 });
483528
484529 group ('Starred messages' , () {
0 commit comments