45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
|
|
import { describe, expect, it } from "vitest";
|
||
|
|
|
||
|
|
import { newlyDecidedLosers } from "../admin.sports-seasons.$id.events.$eventId.bracket.helpers";
|
||
|
|
|
||
|
|
describe("newlyDecidedLosers", () => {
|
||
|
|
it("returns losers of matches that were not already complete", () => {
|
||
|
|
expect(
|
||
|
|
newlyDecidedLosers([
|
||
|
|
{ wasComplete: false, loserId: "sp-1" },
|
||
|
|
{ wasComplete: false, loserId: "sp-2" },
|
||
|
|
])
|
||
|
|
).toEqual(["sp-1", "sp-2"]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("drops re-scores of already-complete matches (no re-announce)", () => {
|
||
|
|
// sp-1's match just finished; sp-2's match was already complete before this
|
||
|
|
// action — only sp-1 is a NEW knockout.
|
||
|
|
expect(
|
||
|
|
newlyDecidedLosers([
|
||
|
|
{ wasComplete: false, loserId: "sp-1" },
|
||
|
|
{ wasComplete: true, loserId: "sp-2" },
|
||
|
|
])
|
||
|
|
).toEqual(["sp-1"]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("skips entries with an unknown loser", () => {
|
||
|
|
expect(
|
||
|
|
newlyDecidedLosers([
|
||
|
|
{ wasComplete: false, loserId: null },
|
||
|
|
{ wasComplete: false, loserId: "sp-3" },
|
||
|
|
])
|
||
|
|
).toEqual(["sp-3"]);
|
||
|
|
});
|
||
|
|
|
||
|
|
it("returns an empty array when nothing was newly decided", () => {
|
||
|
|
expect(
|
||
|
|
newlyDecidedLosers([
|
||
|
|
{ wasComplete: true, loserId: "sp-1" },
|
||
|
|
{ wasComplete: true, loserId: "sp-2" },
|
||
|
|
])
|
||
|
|
).toEqual([]);
|
||
|
|
expect(newlyDecidedLosers([])).toEqual([]);
|
||
|
|
});
|
||
|
|
});
|