From e422ceb42200970703cc288492266522448c4e57 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Tue, 4 Aug 2026 21:36:22 +0300 Subject: [PATCH] Fix solo group tier not same as the user's personal tier --- .../sendouq/core/SendouQ.server.test.ts | 21 ++++++++++++++++++- app/features/sendouq/core/SendouQ.server.ts | 4 +++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/features/sendouq/core/SendouQ.server.test.ts b/app/features/sendouq/core/SendouQ.server.test.ts index 6486d5199..2507b8f75 100644 --- a/app/features/sendouq/core/SendouQ.server.test.ts +++ b/app/features/sendouq/core/SendouQ.server.test.ts @@ -6,7 +6,10 @@ import * as SQGroupFactory from "~/db/seed/factories/SQGroupFactory"; import * as SQMatchFactory from "~/db/seed/factories/SQMatchFactory"; import * as UserFactory from "~/db/seed/factories/UserFactory"; import { MATCHES_COUNT_NEEDED_FOR_LEADERBOARD } from "~/features/leaderboards/leaderboards-constants"; -import { refreshUserSkills } from "~/features/mmr/tiered.server"; +import { + freshUserSkills, + refreshUserSkills, +} from "~/features/mmr/tiered.server"; import * as SQGroupRepository from "../SQGroupRepository.server"; import { refreshSendouQInstance, SendouQ } from "./SendouQ.server"; @@ -169,6 +172,22 @@ describe("SendouQ", () => { expect(group?.members.some((m) => m.id === users.id(5))).toBe(true); expect(group?.members.some((m) => m.id === users.id(1))).toBe(false); }); + + test("solo group has the same tier as the user's personal tier", async () => { + await createSkill(1, 100); + await createSkill(2, 90); + await createSkill(3, 80); + await createSkill(4, 70); + await refreshUserSkills(1); + + await createGroup([1]); + await refreshSendouQInstance(); + + const ownGroup = SendouQ.findOwnGroup(users.id(1))!; + const { userSkills: skills } = await freshUserSkills(1); + + expect(ownGroup.tier).toMatchObject(skills[String(users.id(1))].tier); + }); }); describe("findGroupByInviteCode", () => { diff --git a/app/features/sendouq/core/SendouQ.server.ts b/app/features/sendouq/core/SendouQ.server.ts index 196251d50..18ce0d897 100644 --- a/app/features/sendouq/core/SendouQ.server.ts +++ b/app/features/sendouq/core/SendouQ.server.ts @@ -557,7 +557,9 @@ class SendouQClass { return ( this.#intervals.find( - (i) => i.neededOrdinal && averageOrdinal > i.neededOrdinal, + (i) => + typeof i.neededOrdinal === "number" && + averageOrdinal >= i.neededOrdinal, ) ?? { isPlus: false, name: "IRON" } ); }