Skip to content

Commit f81a698

Browse files
committed
profile test [nfc]: Split redundant group; make group for custom fields
Most of the tests in this ProfilePage group are about custom profile fields. Pull out some that aren't, and rename the group.
1 parent cc8c022 commit f81a698

File tree

1 file changed

+41
-41
lines changed

1 file changed

+41
-41
lines changed

test/widgets/profile_test.dart

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -79,18 +79,50 @@ CustomProfileField mkCustomProfileField(
7979
void main() {
8080
TestZulipBinding.ensureInitialized();
8181

82-
group('ProfilePage', () {
83-
testWidgets('page builds; profile page renders', (tester) async {
84-
final user = eg.user(userId: 1, fullName: 'test user',
85-
deliveryEmail: '[email protected]');
82+
testWidgets('page builds; profile page renders', (tester) async {
83+
final user = eg.user(userId: 1, fullName: 'test user',
84+
deliveryEmail: '[email protected]');
8685

87-
await setupPage(tester, users: [user], pageUserId: user.userId);
86+
await setupPage(tester, users: [user], pageUserId: user.userId);
8887

89-
check(because: 'find user avatar', find.byType(Avatar).evaluate()).length.equals(1);
90-
check(because: 'find user name', find.text('test user').evaluate()).isNotEmpty();
91-
check(because: 'find user delivery email', find.text('[email protected]').evaluate()).isNotEmpty();
92-
});
88+
check(because: 'find user avatar', find.byType(Avatar).evaluate()).length.equals(1);
89+
check(because: 'find user name', find.text('test user').evaluate()).isNotEmpty();
90+
check(because: 'find user delivery email', find.text('[email protected]').evaluate()).isNotEmpty();
91+
});
92+
93+
testWidgets('page builds; error page shows up if data is missing', (tester) async {
94+
await setupPage(tester, pageUserId: eg.selfUser.userId + 1989);
95+
check(because: 'find no user avatar', find.byType(Avatar).evaluate()).isEmpty();
96+
check(because: 'find error icon', find.byIcon(Icons.error).evaluate()).isNotEmpty();
97+
});
98+
99+
testWidgets('page builds; dm links to correct narrow', (tester) async {
100+
final pushedRoutes = <Route<dynamic>>[];
101+
final testNavObserver = TestNavigatorObserver()
102+
..onPushed = (route, prevRoute) => pushedRoutes.add(route);
103+
104+
await setupPage(tester,
105+
users: [eg.user(userId: 1)],
106+
pageUserId: 1,
107+
navigatorObserver: testNavObserver,
108+
);
109+
110+
final targetWidget = find.byIcon(Icons.email);
111+
await tester.ensureVisible(targetWidget);
112+
await tester.tap(targetWidget);
113+
check(pushedRoutes).last.isA<WidgetRoute>().page
114+
.isA<MessageListPage>()
115+
.initNarrow.equals(DmNarrow.withUser(1, selfUserId: eg.selfUser.userId));
116+
});
93117

118+
testWidgets('page builds; ensure long name does not overflow', (tester) async {
119+
final longString = 'X' * 400;
120+
final user = eg.user(userId: 1, fullName: longString);
121+
await setupPage(tester, users: [user], pageUserId: user.userId);
122+
check(find.text(longString).evaluate()).isNotEmpty();
123+
});
124+
125+
group('custom profile fields', () {
94126
testWidgets('page builds; profile page renders with profileData', (tester) async {
95127
await setupPage(tester,
96128
users: [
@@ -153,12 +185,6 @@ void main() {
153185
.deepEquals([1, 2]);
154186
});
155187

156-
testWidgets('page builds; error page shows up if data is missing', (tester) async {
157-
await setupPage(tester, pageUserId: eg.selfUser.userId + 1989);
158-
check(because: 'find no user avatar', find.byType(Avatar).evaluate()).isEmpty();
159-
check(because: 'find error icon', find.byIcon(Icons.error).evaluate()).isNotEmpty();
160-
});
161-
162188
testWidgets('page builds; link type will navigate', (tester) async {
163189
const testUrl = 'http://example/url';
164190
final user = eg.user(userId: 1, profileData: {
@@ -284,25 +310,6 @@ void main() {
284310
debugNetworkImageHttpClientProvider = null;
285311
});
286312

287-
testWidgets('page builds; dm links to correct narrow', (tester) async {
288-
final pushedRoutes = <Route<dynamic>>[];
289-
final testNavObserver = TestNavigatorObserver()
290-
..onPushed = (route, prevRoute) => pushedRoutes.add(route);
291-
292-
await setupPage(tester,
293-
users: [eg.user(userId: 1)],
294-
pageUserId: 1,
295-
navigatorObserver: testNavObserver,
296-
);
297-
298-
final targetWidget = find.byIcon(Icons.email);
299-
await tester.ensureVisible(targetWidget);
300-
await tester.tap(targetWidget);
301-
check(pushedRoutes).last.isA<WidgetRoute>().page
302-
.isA<MessageListPage>()
303-
.initNarrow.equals(DmNarrow.withUser(1, selfUserId: eg.selfUser.userId));
304-
});
305-
306313
testWidgets('page builds; user links render multiple avatars', (tester) async {
307314
final users = [
308315
eg.user(userId: 1, profileData: {
@@ -323,13 +330,6 @@ void main() {
323330
.deepEquals([1, 2, 3]);
324331
});
325332

326-
testWidgets('page builds; ensure long name does not overflow', (tester) async {
327-
final longString = 'X' * 400;
328-
final user = eg.user(userId: 1, fullName: longString);
329-
await setupPage(tester, users: [user], pageUserId: user.userId);
330-
check(find.text(longString).evaluate()).isNotEmpty();
331-
});
332-
333333
testWidgets('page builds; ensure long customProfileFields do not overflow', (tester) async {
334334
final longString = 'X' * 400;
335335
final user = eg.user(userId: 1, fullName: 'fullName', profileData: {

0 commit comments

Comments
 (0)