brackt/app/models/__tests__/scoring-event-delete.test.ts
2026-05-17 21:58:53 -07:00

66 lines
1.8 KiB
TypeScript

import { describe, expect, it, vi } from "vitest";
vi.mock("../scoring-calculator", () => ({
recalculateAffectedLeagues: vi.fn(),
}));
vi.mock("../qualifying-points", async (importOriginal) => {
const actual = await importOriginal();
return {
...(actual as Record<string, unknown>),
recalculateParticipantQP: vi.fn(),
};
});
import { deleteScoringEvent } from "../scoring-event";
describe("deleteScoringEvent", () => {
it("decrements majorsCompleted for a processed zero-QP qualifying event", async () => {
const setCalls: unknown[] = [];
const deleteChain = { where: vi.fn().mockResolvedValue(undefined) };
const updateChain = {
set: vi.fn((values: unknown) => {
setCalls.push(values);
return { where: vi.fn().mockResolvedValue(undefined) };
}),
};
const db = {
query: {
scoringEvents: {
findFirst: vi.fn().mockResolvedValue({
id: "event-1",
sportsSeasonId: "sports-season-1",
eventType: "major_tournament",
isQualifyingEvent: true,
}),
},
eventResults: {
findMany: vi.fn().mockResolvedValue([
{
seasonParticipantId: "participant-1",
placement: 20,
qualifyingPointsAwarded: "0.00",
},
]),
},
sportsSeasons: {
findFirst: vi.fn().mockResolvedValue({
id: "sports-season-1",
majorsCompleted: 1,
}),
},
},
transaction: vi.fn(async (callback) => callback(db)),
delete: vi.fn(() => deleteChain),
update: vi.fn(() => updateChain),
} as any;
await deleteScoringEvent("event-1", db);
expect(setCalls).toEqual(
expect.arrayContaining([
expect.objectContaining({ majorsCompleted: 0 }),
])
);
});
});