Admins can now enable/disable a sport season from appearing in league creation and pre-draft league settings. Non-draftable seasons are hidden from selection but remain visible (and checked) if already linked to an existing pre-draft league. Leagues in draft status or beyond are unaffected. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
66 lines
2 KiB
TypeScript
66 lines
2 KiB
TypeScript
import { describe, it, expect, vi, beforeEach } from "vitest";
|
|
|
|
vi.mock("~/database/context", () => ({
|
|
database: vi.fn(),
|
|
}));
|
|
|
|
import { findAllSportsSeasons, findDraftableSportsSeasons } from "../sports-season";
|
|
import { database } from "~/database/context";
|
|
|
|
const mockSeasons = [
|
|
{ id: "season-1", name: "2025 NBA Playoffs", isDraftable: true, year: 2025 },
|
|
{ id: "season-2", name: "2025 F1 Season", isDraftable: true, year: 2025 },
|
|
{ id: "season-3", name: "2024 Old Golf", isDraftable: false, year: 2024 },
|
|
];
|
|
|
|
function makeMockDb(seasons: typeof mockSeasons) {
|
|
return {
|
|
query: {
|
|
sportsSeasons: {
|
|
findMany: vi.fn().mockResolvedValue(seasons),
|
|
},
|
|
},
|
|
};
|
|
}
|
|
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
});
|
|
|
|
describe("findAllSportsSeasons", () => {
|
|
it("returns all sport seasons regardless of isDraftable", async () => {
|
|
vi.mocked(database).mockReturnValue(makeMockDb(mockSeasons) as never);
|
|
const result = await findAllSportsSeasons();
|
|
expect(result).toHaveLength(3);
|
|
});
|
|
});
|
|
|
|
describe("findDraftableSportsSeasons", () => {
|
|
it("passes isDraftable=true filter to the query", async () => {
|
|
const draftableOnly = mockSeasons.filter((s) => s.isDraftable);
|
|
const mockDb = makeMockDb(draftableOnly);
|
|
vi.mocked(database).mockReturnValue(mockDb as never);
|
|
|
|
const result = await findDraftableSportsSeasons();
|
|
expect(result).toHaveLength(2);
|
|
expect(result.every((s) => s.isDraftable)).toBe(true);
|
|
});
|
|
|
|
it("returns empty array when no draftable seasons exist", async () => {
|
|
vi.mocked(database).mockReturnValue(makeMockDb([]) as never);
|
|
const result = await findDraftableSportsSeasons();
|
|
expect(result).toHaveLength(0);
|
|
});
|
|
|
|
it("calls findMany with isDraftable where clause", async () => {
|
|
const mockDb = makeMockDb([]);
|
|
vi.mocked(database).mockReturnValue(mockDb as never);
|
|
|
|
await findDraftableSportsSeasons();
|
|
expect(mockDb.query.sportsSeasons.findMany).toHaveBeenCalledWith(
|
|
expect.objectContaining({
|
|
where: expect.anything(),
|
|
})
|
|
);
|
|
});
|
|
});
|