From 8d5db5e1ae06c157d5d9dd5fca15159936dd6900 Mon Sep 17 00:00:00 2001 From: Miodec Date: Fri, 6 Mar 2026 10:26:37 +0100 Subject: [PATCH] fix: bad typecast converting null to object also add test --- .../api/controllers/leaderboard.spec.ts | 30 +++++++++++++++++++ backend/src/api/controllers/leaderboard.ts | 9 +++--- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/backend/__tests__/api/controllers/leaderboard.spec.ts b/backend/__tests__/api/controllers/leaderboard.spec.ts index ea22fe70a113..9dc146d5234e 100644 --- a/backend/__tests__/api/controllers/leaderboard.spec.ts +++ b/backend/__tests__/api/controllers/leaderboard.spec.ts @@ -358,6 +358,36 @@ describe("Loaderboard Controller", () => { true, ); }); + it("should get null if no rank", async () => { + //GIVEN + await enableConnectionsFeature(true); + getLeaderboardRankMock.mockResolvedValue(null); + + //WHEN + const { body } = await mockApp + .get("/leaderboards/rank") + .query({ + language: "english", + mode: "time", + mode2: "60", + friendsOnly: true, + }) + .set("Authorization", `Bearer ${uid}`) + .expect(200); + + //THEN + expect(getLeaderboardRankMock).toHaveBeenCalledWith( + "time", + "60", + "english", + uid, + true, + ); + expect(body).toEqual({ + message: "Rank retrieved", + data: null, + }); + }); it("should get with ape key", async () => { await acceptApeKeys(true); const apeKey = await mockAuthenticateWithApeKey(uid, await configuration); diff --git a/backend/src/api/controllers/leaderboard.ts b/backend/src/api/controllers/leaderboard.ts index 1b9f7134734a..899dbd3e1555 100644 --- a/backend/src/api/controllers/leaderboard.ts +++ b/backend/src/api/controllers/leaderboard.ts @@ -98,10 +98,11 @@ export async function getRankFromLeaderboard( ); } - return new MonkeyResponse( - "Rank retrieved", - omit(data as LeaderboardsDAL.DBLeaderboardEntry, ["_id"]), - ); + if (data === null) { + return new MonkeyResponse("Rank retrieved", null); + } + + return new MonkeyResponse("Rank retrieved", omit(data, ["_id"])); } function getDailyLeaderboardWithError(