diff --git a/packages/leaderboard_repository/lib/src/leaderboard_repository.dart b/packages/leaderboard_repository/lib/src/leaderboard_repository.dart index c522584c..838cfc4e 100644 --- a/packages/leaderboard_repository/lib/src/leaderboard_repository.dart +++ b/packages/leaderboard_repository/lib/src/leaderboard_repository.dart @@ -49,26 +49,6 @@ class LeaderboardRepository { } } - /// Determines if the given [initials] are allowed. - Future areInitialsAllowed({required String initials}) async { - // Initials can only be three uppercase A-Z letters - final initialsRegex = RegExp(r'^[A-Z]{3}$'); - if (!initialsRegex.hasMatch(initials)) { - return false; - } - try { - final document = await _firebaseFirestore - .collection('prohibitedInitials') - .doc('list') - .get(); - final prohibitedInitials = - document.get('prohibitedInitials') as List; - return !prohibitedInitials.contains(initials); - } on Exception catch (error, stackTrace) { - throw FetchProhibitedInitialsException(error, stackTrace); - } - } - Future> _fetchLeaderboardSortedByScore() async { try { final querySnapshot = await _firebaseFirestore diff --git a/packages/leaderboard_repository/lib/src/models/exceptions.dart b/packages/leaderboard_repository/lib/src/models/exceptions.dart index f709a27e..be679949 100644 --- a/packages/leaderboard_repository/lib/src/models/exceptions.dart +++ b/packages/leaderboard_repository/lib/src/models/exceptions.dart @@ -58,12 +58,3 @@ class AddLeaderboardEntryException extends LeaderboardException { const AddLeaderboardEntryException(Object error, StackTrace stackTrace) : super(error, stackTrace); } - -/// {@template fetch_prohibited_initials_exception} -/// Exception thrown when failure occurs while fetching prohibited initials. -/// {@endtemplate} -class FetchProhibitedInitialsException extends LeaderboardException { - /// {@macro fetch_prohibited_initials_exception} - const FetchProhibitedInitialsException(Object error, StackTrace stackTrace) - : super(error, stackTrace); -} diff --git a/packages/leaderboard_repository/test/src/leaderboard_repository_test.dart b/packages/leaderboard_repository/test/src/leaderboard_repository_test.dart index d13a9940..1809ab38 100644 --- a/packages/leaderboard_repository/test/src/leaderboard_repository_test.dart +++ b/packages/leaderboard_repository/test/src/leaderboard_repository_test.dart @@ -21,9 +21,6 @@ class _MockQueryDocumentSnapshot extends Mock class _MockDocumentReference extends Mock implements DocumentReference> {} -class _MockDocumentSnapshot extends Mock - implements DocumentSnapshot> {} - void main() { group('LeaderboardRepository', () { late FirebaseFirestore firestore; @@ -368,94 +365,5 @@ void main() { verify(() => documentReference.delete()).called(2); }); }); - - group('areInitialsAllowed', () { - late LeaderboardRepository leaderboardRepository; - late CollectionReference> collectionReference; - late DocumentReference> documentReference; - late DocumentSnapshot> documentSnapshot; - - setUp(() async { - collectionReference = _MockCollectionReference(); - documentReference = _MockDocumentReference(); - documentSnapshot = _MockDocumentSnapshot(); - leaderboardRepository = LeaderboardRepository(firestore); - - when(() => firestore.collection('prohibitedInitials')) - .thenReturn(collectionReference); - when(() => collectionReference.doc('list')) - .thenReturn(documentReference); - when(() => documentReference.get()) - .thenAnswer((_) async => documentSnapshot); - when(() => documentSnapshot.get('prohibitedInitials')) - .thenReturn(['BAD']); - }); - - test('returns true if initials are three letters and allowed', () async { - final isUsernameAllowedResponse = - await leaderboardRepository.areInitialsAllowed( - initials: 'ABC', - ); - expect( - isUsernameAllowedResponse, - isTrue, - ); - }); - - test( - 'returns false if initials are shorter than 3 characters', - () async { - final areInitialsAllowedResponse = - await leaderboardRepository.areInitialsAllowed(initials: 'AB'); - expect(areInitialsAllowedResponse, isFalse); - }, - ); - - test( - 'returns false if initials are longer than 3 characters', - () async { - final areInitialsAllowedResponse = - await leaderboardRepository.areInitialsAllowed(initials: 'ABCD'); - expect(areInitialsAllowedResponse, isFalse); - }, - ); - - test( - 'returns false if initials contain a lowercase letter', - () async { - final areInitialsAllowedResponse = - await leaderboardRepository.areInitialsAllowed(initials: 'AbC'); - expect(areInitialsAllowedResponse, isFalse); - }, - ); - - test( - 'returns false if initials contain a special character', - () async { - final areInitialsAllowedResponse = - await leaderboardRepository.areInitialsAllowed(initials: 'A@C'); - expect(areInitialsAllowedResponse, isFalse); - }, - ); - - test('returns false if initials are forbidden', () async { - final areInitialsAllowedResponse = - await leaderboardRepository.areInitialsAllowed(initials: 'BAD'); - expect(areInitialsAllowedResponse, isFalse); - }); - - test( - 'throws FetchProhibitedInitialsException when Exception occurs ' - 'when trying to retrieve information from firestore', - () async { - when(() => firestore.collection('prohibitedInitials')) - .thenThrow(Exception('oops')); - expect( - () => leaderboardRepository.areInitialsAllowed(initials: 'ABC'), - throwsA(isA()), - ); - }, - ); - }); }); }