diff --git a/packages/features/bookings/lib/getLuckyUser.integration-test.ts b/packages/features/bookings/lib/getLuckyUser.integration-test.ts index b5c695f5df3a08..2ee88d58cbb4b6 100644 --- a/packages/features/bookings/lib/getLuckyUser.integration-test.ts +++ b/packages/features/bookings/lib/getLuckyUser.integration-test.ts @@ -446,7 +446,7 @@ describe("getOrderedListOfLuckyUsers Integration tests", () => { vi.setSystemTime("2024-11-14T00:00:13Z"); }); - it("should sort as per availableUsers if no other criteria like weight/priority/calibration (TODO: make it independent of availableUsers order)", async () => { + it("should sort by user id if no other criteria like weight/priority/calibration", async () => { const [host1, host2, host3] = await Promise.all([ createHostWithBookings({ user: { email: "test-user1@example.com" }, @@ -480,7 +480,9 @@ describe("getOrderedListOfLuckyUsers Integration tests", () => { routingFormResponse: null, }); - expectLuckyUsers(luckyUsers, [user2, user1, user3]); + const expectedOrder = [user1, user2, user3].sort((a, b) => a.id - b.id) + + expectLuckyUsers(luckyUsers, expectedOrder); const { users: luckyUsers2 } = await luckyUserService.getOrderedListOfLuckyUsers({ availableUsers: [user3, user1, user2], @@ -492,7 +494,7 @@ describe("getOrderedListOfLuckyUsers Integration tests", () => { allRRHosts: [], routingFormResponse: null, }); - expectLuckyUsers(luckyUsers2, [user3, user1, user2]); + expectLuckyUsers(luckyUsers2, expectedOrder); }); describe("should sort as per weights", () => { diff --git a/packages/features/bookings/lib/getLuckyUser.ts b/packages/features/bookings/lib/getLuckyUser.ts index 6c60fe77843335..4615a9515221e6 100644 --- a/packages/features/bookings/lib/getLuckyUser.ts +++ b/packages/features/bookings/lib/getLuckyUser.ts @@ -208,6 +208,7 @@ export class LuckyUserService implements ILuckyUserService { availableUsers, bookingsOfAvailableUsers, organizersWithLastCreated, + eventType, }: GetLuckyUserParams & { bookingsOfAvailableUsers: PartialBooking[]; organizersWithLastCreated: { id: number; bookings: { createdAt: Date }[] }[]; @@ -254,7 +255,7 @@ export class LuckyUserService implements ILuckyUserService { const leastRecentlyBookedUser = availableUsers.sort((a, b) => { if (userIdAndAtCreatedPair[a.id] > userIdAndAtCreatedPair[b.id]) return 1; else if (userIdAndAtCreatedPair[a.id] < userIdAndAtCreatedPair[b.id]) return -1; - else return 0; + else return eventType.isRRWeightsEnabled ? 0 : a.id - b.id; })[0]; return leastRecentlyBookedUser;