Skip to content

Commit d589a01

Browse files
committed
autocomplete test [nfc]: Reorder mention sort/match tests to match impl
1 parent e026fed commit d589a01

File tree

1 file changed

+60
-60
lines changed

1 file changed

+60
-60
lines changed

test/model/autocomplete_test.dart

Lines changed: 60 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -403,66 +403,6 @@ void main() {
403403
..not((results) => results.contains(11000));
404404
});
405405

406-
group('MentionAutocompleteQuery.testUser', () {
407-
late PerAccountStore store;
408-
409-
void doCheck(String rawQuery, User user, bool expected) {
410-
final result = MentionAutocompleteQuery(rawQuery).testUser(user, store);
411-
expected
412-
? check(result).isA<UserMentionAutocompleteResult>()
413-
: check(result).isNull();
414-
}
415-
416-
test('user is always excluded when not active regardless of other criteria', () {
417-
store = eg.store();
418-
419-
doCheck('Full Name', eg.user(fullName: 'Full Name', isActive: false), false);
420-
// When active then other criteria will be checked
421-
doCheck('Full Name', eg.user(fullName: 'Full Name', isActive: true), true);
422-
});
423-
424-
test('user is always excluded when muted, regardless of other criteria', () async {
425-
store = eg.store();
426-
await store.setMutedUsers([1]);
427-
doCheck('Full Name', eg.user(userId: 1, fullName: 'Full Name'), false);
428-
// When not muted, then other criteria will be checked
429-
doCheck('Full Name', eg.user(userId: 2, fullName: 'Full Name'), true);
430-
});
431-
432-
test('user is included if fullname words match the query', () {
433-
store = eg.store();
434-
435-
doCheck('', eg.user(fullName: 'Full Name'), true);
436-
doCheck('', eg.user(fullName: ''), true); // Unlikely case, but should not crash
437-
doCheck('Full Name', eg.user(fullName: 'Full Name'), true);
438-
doCheck('full name', eg.user(fullName: 'Full Name'), true);
439-
doCheck('Full Name', eg.user(fullName: 'full name'), true);
440-
doCheck('Full', eg.user(fullName: 'Full Name'), true);
441-
doCheck('Name', eg.user(fullName: 'Full Name'), true);
442-
doCheck('Full Name', eg.user(fullName: 'Fully Named'), true);
443-
doCheck('Full Four', eg.user(fullName: 'Full Name Four Words'), true);
444-
doCheck('Name Words', eg.user(fullName: 'Full Name Four Words'), true);
445-
doCheck('Full F', eg.user(fullName: 'Full Name Four Words'), true);
446-
doCheck('F Four', eg.user(fullName: 'Full Name Four Words'), true);
447-
doCheck('full full', eg.user(fullName: 'Full Full Name'), true);
448-
doCheck('full full', eg.user(fullName: 'Full Name Full'), true);
449-
450-
doCheck('F', eg.user(fullName: ''), false); // Unlikely case, but should not crash
451-
doCheck('Fully Named', eg.user(fullName: 'Full Name'), false);
452-
doCheck('Full Name', eg.user(fullName: 'Full'), false);
453-
doCheck('Full Name', eg.user(fullName: 'Name'), false);
454-
doCheck('ull ame', eg.user(fullName: 'Full Name'), false);
455-
doCheck('ull Name', eg.user(fullName: 'Full Name'), false);
456-
doCheck('Full ame', eg.user(fullName: 'Full Name'), false);
457-
doCheck('Full Full', eg.user(fullName: 'Full Name'), false);
458-
doCheck('Name Name', eg.user(fullName: 'Full Name'), false);
459-
doCheck('Name Full', eg.user(fullName: 'Full Name'), false);
460-
doCheck('Name Four Full Words', eg.user(fullName: 'Full Name Four Words'), false);
461-
doCheck('F Full', eg.user(fullName: 'Full Name Four Words'), false);
462-
doCheck('Four F', eg.user(fullName: 'Full Name Four Words'), false);
463-
});
464-
});
465-
466406
group('MentionAutocompleteView sorting users results', () {
467407
late PerAccountStore store;
468408

@@ -976,6 +916,66 @@ void main() {
976916
});
977917
});
978918

919+
group('MentionAutocompleteQuery.testUser', () {
920+
late PerAccountStore store;
921+
922+
void doCheck(String rawQuery, User user, bool expected) {
923+
final result = MentionAutocompleteQuery(rawQuery).testUser(user, store);
924+
expected
925+
? check(result).isA<UserMentionAutocompleteResult>()
926+
: check(result).isNull();
927+
}
928+
929+
test('user is always excluded when not active regardless of other criteria', () {
930+
store = eg.store();
931+
932+
doCheck('Full Name', eg.user(fullName: 'Full Name', isActive: false), false);
933+
// When active then other criteria will be checked
934+
doCheck('Full Name', eg.user(fullName: 'Full Name', isActive: true), true);
935+
});
936+
937+
test('user is always excluded when muted, regardless of other criteria', () async {
938+
store = eg.store();
939+
await store.setMutedUsers([1]);
940+
doCheck('Full Name', eg.user(userId: 1, fullName: 'Full Name'), false);
941+
// When not muted, then other criteria will be checked
942+
doCheck('Full Name', eg.user(userId: 2, fullName: 'Full Name'), true);
943+
});
944+
945+
test('user is included if fullname words match the query', () {
946+
store = eg.store();
947+
948+
doCheck('', eg.user(fullName: 'Full Name'), true);
949+
doCheck('', eg.user(fullName: ''), true); // Unlikely case, but should not crash
950+
doCheck('Full Name', eg.user(fullName: 'Full Name'), true);
951+
doCheck('full name', eg.user(fullName: 'Full Name'), true);
952+
doCheck('Full Name', eg.user(fullName: 'full name'), true);
953+
doCheck('Full', eg.user(fullName: 'Full Name'), true);
954+
doCheck('Name', eg.user(fullName: 'Full Name'), true);
955+
doCheck('Full Name', eg.user(fullName: 'Fully Named'), true);
956+
doCheck('Full Four', eg.user(fullName: 'Full Name Four Words'), true);
957+
doCheck('Name Words', eg.user(fullName: 'Full Name Four Words'), true);
958+
doCheck('Full F', eg.user(fullName: 'Full Name Four Words'), true);
959+
doCheck('F Four', eg.user(fullName: 'Full Name Four Words'), true);
960+
doCheck('full full', eg.user(fullName: 'Full Full Name'), true);
961+
doCheck('full full', eg.user(fullName: 'Full Name Full'), true);
962+
963+
doCheck('F', eg.user(fullName: ''), false); // Unlikely case, but should not crash
964+
doCheck('Fully Named', eg.user(fullName: 'Full Name'), false);
965+
doCheck('Full Name', eg.user(fullName: 'Full'), false);
966+
doCheck('Full Name', eg.user(fullName: 'Name'), false);
967+
doCheck('ull ame', eg.user(fullName: 'Full Name'), false);
968+
doCheck('ull Name', eg.user(fullName: 'Full Name'), false);
969+
doCheck('Full ame', eg.user(fullName: 'Full Name'), false);
970+
doCheck('Full Full', eg.user(fullName: 'Full Name'), false);
971+
doCheck('Name Name', eg.user(fullName: 'Full Name'), false);
972+
doCheck('Name Full', eg.user(fullName: 'Full Name'), false);
973+
doCheck('Name Four Full Words', eg.user(fullName: 'Full Name Four Words'), false);
974+
doCheck('F Full', eg.user(fullName: 'Full Name Four Words'), false);
975+
doCheck('Four F', eg.user(fullName: 'Full Name Four Words'), false);
976+
});
977+
});
978+
979979
group('MentionAutocompleteQuery ranking', () {
980980
// This gets filled lazily, but never reset.
981981
// We're counting on this group's tests never doing anything to mutate it.

0 commit comments

Comments
 (0)