From 3fe580d4fc6c0b671875f8cf5644f7a1e6c360fa Mon Sep 17 00:00:00 2001 From: iOSLife Date: Thu, 30 Jan 2025 14:30:07 -0500 Subject: [PATCH 1/2] Add tests for hidden leaderboards --- tests/Feature/Api/V1/GameLeaderboardsTest.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/Feature/Api/V1/GameLeaderboardsTest.php b/tests/Feature/Api/V1/GameLeaderboardsTest.php index 42d9cacb31..6cf676188d 100644 --- a/tests/Feature/Api/V1/GameLeaderboardsTest.php +++ b/tests/Feature/Api/V1/GameLeaderboardsTest.php @@ -152,6 +152,22 @@ public function testGetGameLeaderboards(): void 'score' => 3, ]); + /** @var Leaderboard $hiddenLeaderboard */ + $hiddenLeaderboard = Leaderboard::factory()->create([ + 'GameID' => $game->ID, + 'Title' => "Test hidden leaderboard", + 'Description' => "I am a hidden leaderboard", + 'Format' => "TIME", + 'LowerIsBetter' => 1, + 'DisplayOrder' => -1, + ]); + $userEight = User::factory()->create(['User' => 'myUser8']); + $leaderboardEntryFive = LeaderboardEntry::factory()->create([ + 'leaderboard_id' => $hiddenLeaderboard->ID, + 'user_id' => $userEight->ID, + 'score' => 2, + ]); + $this->get($this->apiUrl('GetGameLeaderboards', ['i' => $game->ID])) ->assertSuccessful() ->assertJson([ From 3090ded2fa43df1f361d7bce975f72a77a1e4516 Mon Sep 17 00:00:00 2001 From: iOSLife Date: Thu, 30 Jan 2025 14:30:21 -0500 Subject: [PATCH 2/2] Adjust GameLeaderboard count to not include hidden leaderboards --- public/API/API_GetGameLeaderboards.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/API/API_GetGameLeaderboards.php b/public/API/API_GetGameLeaderboards.php index ab60863320..655a7f8955 100644 --- a/public/API/API_GetGameLeaderboards.php +++ b/public/API/API_GetGameLeaderboards.php @@ -80,6 +80,6 @@ return response()->json([ 'Count' => count($leaderboards), - 'Total' => $game->leaderboards()->count(), + 'Total' => $game->leaderboards()->visible()->count(), 'Results' => $results, ]);