@@ -403,66 +403,6 @@ void main() {
403
403
..not ((results) => results.contains (11000 ));
404
404
});
405
405
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
-
466
406
group ('MentionAutocompleteView sorting users results' , () {
467
407
late PerAccountStore store;
468
408
@@ -976,6 +916,66 @@ void main() {
976
916
});
977
917
});
978
918
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
+
979
979
group ('MentionAutocompleteQuery ranking' , () {
980
980
// This gets filled lazily, but never reset.
981
981
// We're counting on this group's tests never doing anything to mutate it.
0 commit comments