@@ -9,10 +9,12 @@ import 'package:url_launcher/url_launcher.dart';
9
9
import 'package:zulip/api/model/events.dart' ;
10
10
import 'package:zulip/api/model/initial_snapshot.dart' ;
11
11
import 'package:zulip/api/model/model.dart' ;
12
+ import 'package:zulip/basic.dart' ;
12
13
import 'package:zulip/model/narrow.dart' ;
13
14
import 'package:zulip/model/store.dart' ;
14
15
import 'package:zulip/widgets/button.dart' ;
15
16
import 'package:zulip/widgets/content.dart' ;
17
+ import 'package:zulip/widgets/emoji.dart' ;
16
18
import 'package:zulip/widgets/icons.dart' ;
17
19
import 'package:zulip/widgets/message_list.dart' ;
18
20
import 'package:zulip/widgets/page.dart' ;
@@ -27,6 +29,7 @@ import '../stdlib_checks.dart';
27
29
import '../test_images.dart' ;
28
30
import '../test_navigation.dart' ;
29
31
import 'message_list_checks.dart' ;
32
+ import 'message_list_test.dart' ;
30
33
import 'page_checks.dart' ;
31
34
import 'profile_page_checks.dart' ;
32
35
import 'test_app.dart' ;
@@ -38,6 +41,7 @@ Future<void> setupPage(WidgetTester tester, {
38
41
required int pageUserId,
39
42
List <User >? users,
40
43
List <int >? mutedUserIds,
44
+ List <(int userId, UserStatusChange change)>? userStatuses,
41
45
List <CustomProfileField >? customProfileFields,
42
46
Map <String , RealmDefaultExternalAccount >? realmDefaultExternalAccounts,
43
47
bool realmPresenceDisabled = false ,
@@ -60,6 +64,7 @@ Future<void> setupPage(WidgetTester tester, {
60
64
if (mutedUserIds != null ) {
61
65
await store.setMutedUsers (mutedUserIds);
62
66
}
67
+ await store.changeUserStatuses (userStatuses ?? []);
63
68
64
69
await tester.pumpWidget (TestZulipApp (
65
70
accountId: eg.selfAccount.id,
@@ -95,12 +100,25 @@ void main() {
95
100
final user = eg.user (userId: 1 , fullName: 'test user' ,
96
101
deliveryEmail
: '[email protected] ' );
97
102
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
+ });
104
122
105
123
testWidgets ('page builds; error page shows up if data is missing' , (tester) async {
106
124
await setupPage (tester, pageUserId: eg.selfUser.userId + 1989 );
0 commit comments