mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-04-14 00:59:26 -05:00
77 lines
2.1 KiB
TypeScript
77 lines
2.1 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { subsOfResult } from "./team-utils";
|
|
|
|
describe("subsOfResult()", () => {
|
|
it("returns empty array if all participants are current members", () => {
|
|
const result = {
|
|
participants: [{ id: 1 }, { id: 2 }],
|
|
startTime: 1000,
|
|
};
|
|
const members = [
|
|
{ userId: 1, createdAt: 500, leftAt: null },
|
|
{ userId: 2, createdAt: 600, leftAt: null },
|
|
];
|
|
const subs = subsOfResult(result, members);
|
|
expect(subs).toEqual([]);
|
|
});
|
|
|
|
it("returns participant not in members as sub", () => {
|
|
const result = {
|
|
participants: [{ id: 1 }, { id: 2 }],
|
|
startTime: 1000,
|
|
};
|
|
const members = [{ userId: 1, createdAt: 500, leftAt: null }];
|
|
const subs = subsOfResult(result, members);
|
|
expect(subs).toEqual([{ id: 2 }]);
|
|
});
|
|
|
|
it("returns participant as sub if they left before result startTime", () => {
|
|
const result = {
|
|
participants: [{ id: 1 }, { id: 2 }],
|
|
startTime: 1000,
|
|
};
|
|
const members = [
|
|
{ userId: 1, createdAt: 500, leftAt: 900 },
|
|
{ userId: 2, createdAt: 600, leftAt: null },
|
|
];
|
|
const subs = subsOfResult(result, members);
|
|
expect(subs).toEqual([{ id: 1 }]);
|
|
});
|
|
|
|
it("does not return participant as sub if they were a member during result", () => {
|
|
const result = {
|
|
participants: [{ id: 1 }, { id: 2 }],
|
|
startTime: 1000,
|
|
};
|
|
const members = [
|
|
{ userId: 1, createdAt: 500, leftAt: 2000 },
|
|
{ userId: 2, createdAt: 600, leftAt: null },
|
|
];
|
|
const subs = subsOfResult(result, members);
|
|
expect(subs).toEqual([]);
|
|
});
|
|
|
|
it("returns multiple subs correctly", () => {
|
|
const result = {
|
|
participants: [{ id: 1 }, { id: 2 }, { id: 3 }],
|
|
startTime: 1000,
|
|
};
|
|
const members = [
|
|
{ userId: 1, createdAt: 500, leftAt: 900 },
|
|
{ userId: 2, createdAt: 600, leftAt: null },
|
|
];
|
|
const subs = subsOfResult(result, members);
|
|
expect(subs).toEqual([{ id: 1 }, { id: 3 }]);
|
|
});
|
|
|
|
it("returns empty array if no participants", () => {
|
|
const result = {
|
|
participants: [],
|
|
startTime: 1000,
|
|
};
|
|
const members = [{ userId: 1, createdAt: 500, leftAt: null }];
|
|
const subs = subsOfResult(result, members);
|
|
expect(subs).toEqual([]);
|
|
});
|
|
});
|