From 611ef64b98928010a09dea69e915570a92c660d0 Mon Sep 17 00:00:00 2001 From: Tom Arra Date: Fri, 6 May 2022 18:47:16 -0500 Subject: [PATCH] remove delete code from app as well --- .../lib/src/leaderboard_repository.dart | 18 ---- .../lib/src/models/exceptions.dart | 10 --- .../test/src/leaderboard_repository_test.dart | 89 +------------------ 3 files changed, 3 insertions(+), 114 deletions(-) diff --git a/packages/leaderboard_repository/lib/src/leaderboard_repository.dart b/packages/leaderboard_repository/lib/src/leaderboard_repository.dart index c522584c..75c50d13 100644 --- a/packages/leaderboard_repository/lib/src/leaderboard_repository.dart +++ b/packages/leaderboard_repository/lib/src/leaderboard_repository.dart @@ -44,7 +44,6 @@ class LeaderboardRepository { final tenthPositionScore = leaderboard[9].score; if (entry.score > tenthPositionScore) { await _saveScore(entry); - await _deleteScoresUnder(tenthPositionScore); } } } @@ -91,23 +90,6 @@ class LeaderboardRepository { throw AddLeaderboardEntryException(error, stackTrace); } } - - Future _deleteScoresUnder(int score) async { - try { - final querySnapshot = await _firebaseFirestore - .collection(_leaderboardCollectionName) - .where(_scoreFieldName, isLessThanOrEqualTo: score) - .get(); - final documents = querySnapshot.docs; - for (final document in documents) { - await document.reference.delete(); - } - } on LeaderboardDeserializationException { - rethrow; - } on Exception catch (error, stackTrace) { - throw DeleteLeaderboardException(error, stackTrace); - } - } } extension on List { diff --git a/packages/leaderboard_repository/lib/src/models/exceptions.dart b/packages/leaderboard_repository/lib/src/models/exceptions.dart index f709a27e..e295de53 100644 --- a/packages/leaderboard_repository/lib/src/models/exceptions.dart +++ b/packages/leaderboard_repository/lib/src/models/exceptions.dart @@ -40,16 +40,6 @@ class FetchLeaderboardException extends LeaderboardException { : super(error, stackTrace); } -/// {@template delete_leaderboard_exception} -/// Exception thrown when failure occurs while deleting the leaderboard under -/// the tenth position. -/// {@endtemplate} -class DeleteLeaderboardException extends LeaderboardException { - /// {@macro fetch_top_10_leaderboard_exception} - const DeleteLeaderboardException(Object error, StackTrace stackTrace) - : super(error, stackTrace); -} - /// {@template add_leaderboard_entry_exception} /// Exception thrown when failure occurs while adding entry to leaderboard. /// {@endtemplate} diff --git a/packages/leaderboard_repository/test/src/leaderboard_repository_test.dart b/packages/leaderboard_repository/test/src/leaderboard_repository_test.dart index d13a9940..fd5a3d82 100644 --- a/packages/leaderboard_repository/test/src/leaderboard_repository_test.dart +++ b/packages/leaderboard_repository/test/src/leaderboard_repository_test.dart @@ -245,73 +245,10 @@ void main() { ); }); - test( - 'throws DeleteLeaderboardException ' - 'when deleting scores outside the top 10 fails', () async { - final deleteQuery = _MockQuery(); - final deleteQuerySnapshot = _MockQuerySnapshot(); - final newScore = LeaderboardEntryData( - playerInitials: 'ABC', - score: 15000, - character: CharacterType.android, - ); - final leaderboardScores = [ - 10000, - 9500, - 9000, - 8500, - 8000, - 7500, - 7000, - 6500, - 6000, - 5500, - 5000, - ]; - final deleteDocumentSnapshots = [5500, 5000].map((score) { - final queryDocumentSnapshot = _MockQueryDocumentSnapshot(); - when(queryDocumentSnapshot.data).thenReturn({ - 'character': 'dash', - 'playerInitials': 'AAA', - 'score': score - }); - when(() => queryDocumentSnapshot.id).thenReturn('id$score'); - when(() => queryDocumentSnapshot.reference) - .thenReturn(documentReference); - return queryDocumentSnapshot; - }).toList(); - when(deleteQuery.get).thenAnswer((_) async => deleteQuerySnapshot); - when(() => deleteQuerySnapshot.docs) - .thenReturn(deleteDocumentSnapshots); - final queryDocumentSnapshots = leaderboardScores.map((score) { - final queryDocumentSnapshot = _MockQueryDocumentSnapshot(); - when(queryDocumentSnapshot.data).thenReturn({ - 'character': 'dash', - 'playerInitials': 'AAA', - 'score': score - }); - when(() => queryDocumentSnapshot.id).thenReturn('id$score'); - when(() => queryDocumentSnapshot.reference) - .thenReturn(documentReference); - return queryDocumentSnapshot; - }).toList(); - when( - () => collectionReference.where('score', isLessThanOrEqualTo: 5500), - ).thenAnswer((_) => deleteQuery); - when(() => documentReference.delete()).thenThrow(Exception('oops')); - when(() => querySnapshot.docs).thenReturn(queryDocumentSnapshots); - expect( - () => leaderboardRepository.addLeaderboardEntry(newScore), - throwsA(isA()), - ); - }); - test( 'saves the new score when there are more than 10 scores in the ' - 'leaderboard and the new score is higher than the lowest top 10, and ' - 'deletes the scores that are not in the top 10 anymore', () async { - final deleteQuery = _MockQuery(); - final deleteQuerySnapshot = _MockQuerySnapshot(); + 'leaderboard and the new score is higher than the lowest top 10', + () async { final newScore = LeaderboardEntryData( playerInitials: 'ABC', score: 15000, @@ -330,21 +267,6 @@ void main() { 5500, 5000, ]; - final deleteDocumentSnapshots = [5500, 5000].map((score) { - final queryDocumentSnapshot = _MockQueryDocumentSnapshot(); - when(queryDocumentSnapshot.data).thenReturn({ - 'character': 'dash', - 'playerInitials': 'AAA', - 'score': score - }); - when(() => queryDocumentSnapshot.id).thenReturn('id$score'); - when(() => queryDocumentSnapshot.reference) - .thenReturn(documentReference); - return queryDocumentSnapshot; - }).toList(); - when(deleteQuery.get).thenAnswer((_) async => deleteQuerySnapshot); - when(() => deleteQuerySnapshot.docs) - .thenReturn(deleteDocumentSnapshots); final queryDocumentSnapshots = leaderboardScores.map((score) { final queryDocumentSnapshot = _MockQueryDocumentSnapshot(); when(queryDocumentSnapshot.data).thenReturn({ @@ -357,15 +279,10 @@ void main() { .thenReturn(documentReference); return queryDocumentSnapshot; }).toList(); - when( - () => collectionReference.where('score', isLessThanOrEqualTo: 5500), - ).thenAnswer((_) => deleteQuery); - when(() => documentReference.delete()) - .thenAnswer((_) async => Future.value()); + when(() => querySnapshot.docs).thenReturn(queryDocumentSnapshots); await leaderboardRepository.addLeaderboardEntry(newScore); verify(() => collectionReference.add(newScore.toJson())).called(1); - verify(() => documentReference.delete()).called(2); }); });