Development #24
@@ -0,0 +1,9 @@
|
|||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
import { matchInputSchema } from "./types";
|
||||||
|
|
||||||
|
describe("matchInputSchema.partial()", () => {
|
||||||
|
it("does not inject keys the caller did not send", () => {
|
||||||
|
const parsed = matchInputSchema.partial().parse({ home_cups: 7 });
|
||||||
|
expect(parsed).toEqual({ home_cups: 7 });
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -42,20 +42,20 @@ export interface Match {
|
|||||||
export const matchInputSchema = z.object({
|
export const matchInputSchema = z.object({
|
||||||
order: z.number().int().min(1).optional(),
|
order: z.number().int().min(1).optional(),
|
||||||
lid: z.number().int().min(1),
|
lid: z.number().int().min(1),
|
||||||
reset: z.boolean().optional().default(false),
|
reset: z.boolean().optional(),
|
||||||
round: z.number().int().min(1),
|
round: z.number().int().min(1),
|
||||||
home_cups: z.number().int().min(0).optional().default(0),
|
home_cups: z.number().int().min(0).optional(),
|
||||||
away_cups: z.number().int().min(0).optional().default(0),
|
away_cups: z.number().int().min(0).optional(),
|
||||||
ot_count: z.number().int().min(0).optional().default(0),
|
ot_count: z.number().int().min(0).optional(),
|
||||||
start_time: z.iso.datetime().optional(),
|
start_time: z.iso.datetime().optional(),
|
||||||
end_time: z.iso.datetime().optional(),
|
end_time: z.iso.datetime().optional(),
|
||||||
bye: z.boolean().optional().default(false),
|
bye: z.boolean().optional(),
|
||||||
home_from_lid: z.number().int().min(1).optional(),
|
home_from_lid: z.number().int().min(1).optional(),
|
||||||
away_from_lid: z.number().int().min(1).optional(),
|
away_from_lid: z.number().int().min(1).optional(),
|
||||||
home_from_loser: z.boolean().optional().default(false),
|
home_from_loser: z.boolean().optional(),
|
||||||
away_from_loser: z.boolean().optional().default(false),
|
away_from_loser: z.boolean().optional(),
|
||||||
is_losers_bracket: z.boolean().optional().default(false),
|
is_losers_bracket: z.boolean().optional(),
|
||||||
status: z.enum(["tbd", "ready", "started", "ended"]).optional().default("tbd"),
|
status: z.enum(["tbd", "ready", "started", "ended"]).optional(),
|
||||||
tournament: z.string().min(1),
|
tournament: z.string().min(1),
|
||||||
home: z.string().min(1).nullable().optional(),
|
home: z.string().min(1).nullable().optional(),
|
||||||
away: z.string().min(1).nullable().optional(),
|
away: z.string().min(1).nullable().optional(),
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import { describe, expect, it } from "vitest";
|
||||||
|
import { tournamentInputSchema } from "./types";
|
||||||
|
|
||||||
|
describe("tournamentInputSchema.partial()", () => {
|
||||||
|
it("does not inject keys the caller did not send", () => {
|
||||||
|
const parsed = tournamentInputSchema.partial().parse({ rules: "<p>rules</p>" });
|
||||||
|
expect(parsed).toEqual({ rules: "<p>rules</p>" });
|
||||||
|
});
|
||||||
|
|
||||||
|
it("passes an explicit regional flag through unchanged", () => {
|
||||||
|
expect(tournamentInputSchema.partial().parse({ regional: true })).toEqual({
|
||||||
|
regional: true,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -98,7 +98,7 @@ export const tournamentInputSchema = z.object({
|
|||||||
enroll_time: z.string(),
|
enroll_time: z.string(),
|
||||||
start_time: z.string(),
|
start_time: z.string(),
|
||||||
end_time: z.string().optional(),
|
end_time: z.string().optional(),
|
||||||
regional: z.boolean().optional().default(false),
|
regional: z.boolean().optional(),
|
||||||
format: z.enum(["single_elim", "double_elim", "groups", "swiss", "swiss_bracket", "round_robin"]).optional(),
|
format: z.enum(["single_elim", "double_elim", "groups", "swiss", "swiss_bracket", "round_robin"]).optional(),
|
||||||
phase: z.enum(["seeding", "group_stage", "knockout", "completed"]).optional(),
|
phase: z.enum(["seeding", "group_stage", "knockout", "completed"]).optional(),
|
||||||
group_config: z.object({
|
group_config: z.object({
|
||||||
|
|||||||
Reference in New Issue
Block a user