@@ -9,10 +9,12 @@ import 'package:url_launcher/url_launcher.dart';
99import 'package:zulip/api/model/events.dart' ;
1010import 'package:zulip/api/model/initial_snapshot.dart' ;
1111import 'package:zulip/api/model/model.dart' ;
12+ import 'package:zulip/basic.dart' ;
1213import 'package:zulip/model/narrow.dart' ;
1314import 'package:zulip/model/store.dart' ;
1415import 'package:zulip/widgets/button.dart' ;
1516import 'package:zulip/widgets/content.dart' ;
17+ import 'package:zulip/widgets/emoji.dart' ;
1618import 'package:zulip/widgets/icons.dart' ;
1719import 'package:zulip/widgets/message_list.dart' ;
1820import 'package:zulip/widgets/page.dart' ;
@@ -27,6 +29,7 @@ import '../stdlib_checks.dart';
2729import '../test_images.dart' ;
2830import '../test_navigation.dart' ;
2931import 'message_list_checks.dart' ;
32+ import 'message_list_test.dart' ;
3033import 'page_checks.dart' ;
3134import 'profile_page_checks.dart' ;
3235import 'test_app.dart' ;
@@ -38,6 +41,7 @@ Future<void> setupPage(WidgetTester tester, {
3841 required int pageUserId,
3942 List <User >? users,
4043 List <int >? mutedUserIds,
44+ List <(int userId, UserStatusChange change)>? userStatuses,
4145 List <CustomProfileField >? customProfileFields,
4246 Map <String , RealmDefaultExternalAccount >? realmDefaultExternalAccounts,
4347 bool realmPresenceDisabled = false ,
@@ -60,6 +64,7 @@ Future<void> setupPage(WidgetTester tester, {
6064 if (mutedUserIds != null ) {
6165 await store.setMutedUsers (mutedUserIds);
6266 }
67+ await store.changeUserStatuses (userStatuses ?? []);
6368
6469 await tester.pumpWidget (TestZulipApp (
6570 accountId: eg.selfAccount.id,
@@ -95,12 +100,25 @@ void main() {
95100 final user = eg.user (userId: 1 , fullName: 'test user' ,
96101 deliveryEmail
: '[email protected] ' );
97102
98- await setupPage (tester, users: [user], pageUserId: user.userId);
99-
100- check (because: 'find user avatar' , find.byType (Avatar ).evaluate ()).length.equals (1 );
101- check (because: 'find user name' , find.text ('test user' ).evaluate ()).isNotEmpty ();
102- check (because
: 'find user delivery email' , find.
text (
'[email protected] ' ).
evaluate ()).
isNotEmpty ();
103- });
103+ await setupPage (tester, users: [user], pageUserId: user.userId,
104+ userStatuses: [
105+ (
106+ user.userId,
107+ UserStatusChange (
108+ text: OptionSome ('Busy' ),
109+ emoji: OptionSome (StatusEmoji (emojiName: 'working_on_it' ,
110+ emojiCode: '1f6e0' , reactionType: ReactionType .unicodeEmoji)))
111+ ),
112+ ]);
113+
114+ check (because: 'find user avatar' , find.byType (Avatar ).evaluate ()).length.equals (1 );
115+ check (because: 'find user name' , find.text ('test user' ).evaluate ()).isNotEmpty ();
116+ check (because
: 'find user delivery email' , find.
text (
'[email protected] ' ).
evaluate ()).
isNotEmpty ();
117+ final statusEmojiFinder = findStatusEmoji (UnicodeEmojiWidget );
118+ checkUserStatusEmoji (statusEmojiFinder, isAnimated: true );
119+ check (because: 'find user status emoji' , statusEmojiFinder).findsOne ();
120+ check (because: 'find user status text' , find.text ('Busy' )).findsOne ();
121+ });
104122
105123 testWidgets ('page builds; error page shows up if data is missing' , (tester) async {
106124 await setupPage (tester, pageUserId: eg.selfUser.userId + 1989 );
0 commit comments