Skip to content

Commit 81a6c2a

Browse files
committed
autocomplete test: Use a test group to handle MentionAutocompleteQuery.testUser test cases
MentionAutocompleteQuery.testUser is a filter function that is expected to complicated as we add features. for example it will be responsible for filtering users based on email, name, stream activity, etc.. so it is useful to have the test cases that test it in a group.
1 parent d26b667 commit 81a6c2a

File tree

1 file changed

+34
-29
lines changed

1 file changed

+34
-29
lines changed

test/model/autocomplete_test.dart

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -305,40 +305,45 @@ void main() {
305305
}
306306
});
307307

308-
test('MentionAutocompleteQuery.testUser', () {
308+
309+
group('MentionAutocompleteQuery.testUser', () {
309310
doCheck(String rawQuery, User user, bool expected) {
310311
final result = MentionAutocompleteQuery(rawQuery)
311312
.testUser(user, AutocompleteDataCache());
312313
expected ? check(result).isTrue() : check(result).isFalse();
313314
}
314315

315-
doCheck('', eg.user(fullName: 'Full Name'), true);
316-
doCheck('', eg.user(fullName: ''), true); // Unlikely case, but should not crash
317-
doCheck('Full Name', eg.user(fullName: 'Full Name'), true);
318-
doCheck('full name', eg.user(fullName: 'Full Name'), true);
319-
doCheck('Full Name', eg.user(fullName: 'full name'), true);
320-
doCheck('Full', eg.user(fullName: 'Full Name'), true);
321-
doCheck('Name', eg.user(fullName: 'Full Name'), true);
322-
doCheck('Full Name', eg.user(fullName: 'Fully Named'), true);
323-
doCheck('Full Four', eg.user(fullName: 'Full Name Four Words'), true);
324-
doCheck('Name Words', eg.user(fullName: 'Full Name Four Words'), true);
325-
doCheck('Full F', eg.user(fullName: 'Full Name Four Words'), true);
326-
doCheck('F Four', eg.user(fullName: 'Full Name Four Words'), true);
327-
doCheck('full full', eg.user(fullName: 'Full Full Name'), true);
328-
doCheck('full full', eg.user(fullName: 'Full Name Full'), true);
329-
330-
doCheck('F', eg.user(fullName: ''), false); // Unlikely case, but should not crash
331-
doCheck('Fully Named', eg.user(fullName: 'Full Name'), false);
332-
doCheck('Full Name', eg.user(fullName: 'Full'), false);
333-
doCheck('Full Name', eg.user(fullName: 'Name'), false);
334-
doCheck('ull ame', eg.user(fullName: 'Full Name'), false);
335-
doCheck('ull Name', eg.user(fullName: 'Full Name'), false);
336-
doCheck('Full ame', eg.user(fullName: 'Full Name'), false);
337-
doCheck('Full Full', eg.user(fullName: 'Full Name'), false);
338-
doCheck('Name Name', eg.user(fullName: 'Full Name'), false);
339-
doCheck('Name Full', eg.user(fullName: 'Full Name'), false);
340-
doCheck('Name Four Full Words', eg.user(fullName: 'Full Name Four Words'), false);
341-
doCheck('F Full', eg.user(fullName: 'Full Name Four Words'), false);
342-
doCheck('Four F', eg.user(fullName: 'Full Name Four Words'), false);
316+
test('user is included if fullname words match the query', () {
317+
doCheck('', eg.user(fullName: 'Full Name'), true);
318+
doCheck('', eg.user(fullName: ''), true); // Unlikely case, but should not crash
319+
doCheck('Full Name', eg.user(fullName: 'Full Name'), true);
320+
doCheck('full name', eg.user(fullName: 'Full Name'), true);
321+
doCheck('Full Name', eg.user(fullName: 'full name'), true);
322+
doCheck('Full', eg.user(fullName: 'Full Name'), true);
323+
doCheck('Name', eg.user(fullName: 'Full Name'), true);
324+
doCheck('Full Name', eg.user(fullName: 'Fully Named'), true);
325+
doCheck('Full Four', eg.user(fullName: 'Full Name Four Words'), true);
326+
doCheck('Name Words', eg.user(fullName: 'Full Name Four Words'), true);
327+
doCheck('Full F', eg.user(fullName: 'Full Name Four Words'), true);
328+
doCheck('F Four', eg.user(fullName: 'Full Name Four Words'), true);
329+
doCheck('full full', eg.user(fullName: 'Full Full Name'), true);
330+
doCheck('full full', eg.user(fullName: 'Full Name Full'), true);
331+
332+
doCheck('F', eg.user(fullName: ''), false); // Unlikely case, but should not crash
333+
doCheck('Fully Named', eg.user(fullName: 'Full Name'), false);
334+
doCheck('Full Name', eg.user(fullName: 'Full'), false);
335+
doCheck('Full Name', eg.user(fullName: 'Name'), false);
336+
doCheck('ull ame', eg.user(fullName: 'Full Name'), false);
337+
doCheck('ull Name', eg.user(fullName: 'Full Name'), false);
338+
doCheck('Full ame', eg.user(fullName: 'Full Name'), false);
339+
doCheck('Full Full', eg.user(fullName: 'Full Name'), false);
340+
doCheck('Name Name', eg.user(fullName: 'Full Name'), false);
341+
doCheck('Name Full', eg.user(fullName: 'Full Name'), false);
342+
doCheck('Name Four Full Words', eg.user(fullName: 'Full Name Four Words'), false);
343+
doCheck('F Full', eg.user(fullName: 'Full Name Four Words'), false);
344+
doCheck('Four F', eg.user(fullName: 'Full Name Four Words'), false);
345+
});
346+
343347
});
348+
344349
}

0 commit comments

Comments
 (0)