Skip to content

Commit bff25ad

Browse files
fombalanggnprice
authored andcommitted
autocomplete test: Add test case for delivery email visibility
Checks delivery email is visible only when its not null, and the server generated fake email isn't shown. Also fixes minor bug in example_data.dart which causes delivery email to always be shown in tests.
1 parent 341634c commit bff25ad

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

test/example_data.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ User user({
125125
_checkPositive(userId, 'user ID');
126126
return User(
127127
userId: userId ?? _nextUserId(),
128-
deliveryEmail: effectiveDeliveryEmail,
128+
deliveryEmail: deliveryEmail,
129129
email: email ?? effectiveDeliveryEmail,
130130
fullName: fullName ?? 'A user', // TODO generate example names
131131
dateJoined: dateJoined ?? '2024-02-24T11:18+00:00',

test/widgets/autocomplete_test.dart

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,10 @@ void main() {
131131
Finder findAvatarImage(int userId) =>
132132
find.byWidgetPredicate((widget) => widget is AvatarImage && widget.userId == userId);
133133

134-
void checkUserShown(User user, {required bool expected}) {
134+
void checkUserShown(User user, {required bool expected, bool? deliveryEmailExpected}) {
135+
deliveryEmailExpected ??= expected;
135136
check(find.text(user.fullName).evaluate().length).equals(expected ? 1 : 0);
136-
check(find.text(user.deliveryEmail!).evaluate().length).equals(expected ? 1 : 0);
137+
check(find.text(user.deliveryEmail?? "").evaluate().length).equals(deliveryEmailExpected ? 1 : 0);
137138
final avatarFinder = findAvatarImage(user.userId);
138139
check(avatarFinder.evaluate().length).equals(expected ? 1 : 0);
139140
}
@@ -182,6 +183,27 @@ void main() {
182183

183184
debugNetworkImageHttpClientProvider = null;
184185
});
186+
187+
testWidgets('test delivery email visibility', (tester) async {
188+
final user2 = eg.user(userId: 2, fullName: 'User Two', avatarUrl: 'user2.png',);
189+
final user3 = eg.user(userId: 3, fullName: 'User Three', avatarUrl: 'user3.png', deliveryEmail: '[email protected]');
190+
final composeInputFinder = await setupToComposeInput(tester, users: [user2, user3]);
191+
192+
TypingNotifier.debugEnable = false;
193+
addTearDown(TypingNotifier.debugReset);
194+
195+
// Options are filtered correctly for query
196+
// TODO(#226): Remove this extra edit when this bug is fixed.
197+
await tester.enterText(composeInputFinder, 'hello @user ');
198+
await tester.enterText(composeInputFinder, 'hello @user t');
199+
await tester.pumpAndSettle(); // async computation; options appear
200+
201+
// "User Two"'s delivery email is not visible and "User Three"'s delivery email is visible
202+
checkUserShown(user2, expected: true, deliveryEmailExpected: false);
203+
checkUserShown(user3, expected: true, deliveryEmailExpected: true);
204+
205+
debugNetworkImageHttpClientProvider = null;
206+
});
185207
});
186208

187209
group('emoji', () {

0 commit comments

Comments
 (0)