Fix avgSeedingSkillOrdinal condition in autoseed

Basically this should never happen so this is not fixing any known bug
This commit is contained in:
Kalle
2026-04-19 07:10:49 +03:00
parent a4eda293e7
commit 793ebfe4a4
2 changed files with 28 additions and 4 deletions

View File

@@ -23,7 +23,10 @@ const createTeam = (
id,
seed: options.seed ?? null,
members: { length: options.members ?? 4 },
avgSeedingSkillOrdinal: options.avgSeedingSkillOrdinal ?? 100,
avgSeedingSkillOrdinal:
options.avgSeedingSkillOrdinal === undefined
? 100
: options.avgSeedingSkillOrdinal,
createdAt: options.createdAt ?? id,
startingBracketIdx: options.startingBracketIdx ?? null,
});
@@ -146,7 +149,7 @@ describe("compareTeamsForOrdering", () => {
it("places team with skill before team without skill", () => {
const withSkill = createTeam(1, { avgSeedingSkillOrdinal: 100 });
const withoutSkill = createTeam(2);
const withoutSkill = createTeam(2, { avgSeedingSkillOrdinal: null });
const result = compareTeamsForOrdering(
withSkill,
@@ -156,6 +159,21 @@ describe("compareTeamsForOrdering", () => {
expect(result).toBeLessThan(0);
});
it("places rated team before unrated team even when unrated was created earlier", () => {
const rated = createTeam(1, {
avgSeedingSkillOrdinal: 100,
createdAt: 200,
});
const unrated = createTeam(2, {
avgSeedingSkillOrdinal: null,
createdAt: 100,
});
const sorted = sortTeamsBySeeding([unrated, rated], MIN_MEMBERS);
expect(sorted.map((t) => t.id)).toEqual([1, 2]);
});
});
describe("createdAt tiebreaker", () => {

View File

@@ -312,10 +312,16 @@ export function compareTeamsForOrdering(
return 1;
}
if (a.avgSeedingSkillOrdinal !== null && b.avgSeedingSkillOrdinal === null) {
return -1;
}
if (a.avgSeedingSkillOrdinal === null && b.avgSeedingSkillOrdinal !== null) {
return 1;
}
if (
a.avgSeedingSkillOrdinal !== b.avgSeedingSkillOrdinal &&
a.avgSeedingSkillOrdinal !== null &&
b.avgSeedingSkillOrdinal !== null
b.avgSeedingSkillOrdinal !== null &&
a.avgSeedingSkillOrdinal !== b.avgSeedingSkillOrdinal
) {
return b.avgSeedingSkillOrdinal - a.avgSeedingSkillOrdinal;
}