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({
|
||||
order: z.number().int().min(1).optional(),
|
||||
lid: z.number().int().min(1),
|
||||
reset: z.boolean().optional().default(false),
|
||||
reset: z.boolean().optional(),
|
||||
round: z.number().int().min(1),
|
||||
home_cups: z.number().int().min(0).optional().default(0),
|
||||
away_cups: z.number().int().min(0).optional().default(0),
|
||||
ot_count: z.number().int().min(0).optional().default(0),
|
||||
home_cups: z.number().int().min(0).optional(),
|
||||
away_cups: z.number().int().min(0).optional(),
|
||||
ot_count: z.number().int().min(0).optional(),
|
||||
start_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(),
|
||||
away_from_lid: z.number().int().min(1).optional(),
|
||||
home_from_loser: z.boolean().optional().default(false),
|
||||
away_from_loser: z.boolean().optional().default(false),
|
||||
is_losers_bracket: z.boolean().optional().default(false),
|
||||
status: z.enum(["tbd", "ready", "started", "ended"]).optional().default("tbd"),
|
||||
home_from_loser: z.boolean().optional(),
|
||||
away_from_loser: z.boolean().optional(),
|
||||
is_losers_bracket: z.boolean().optional(),
|
||||
status: z.enum(["tbd", "ready", "started", "ended"]).optional(),
|
||||
tournament: z.string().min(1),
|
||||
home: 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(),
|
||||
start_time: z.string(),
|
||||
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(),
|
||||
phase: z.enum(["seeding", "group_stage", "knockout", "completed"]).optional(),
|
||||
group_config: z.object({
|
||||
|
||||
Reference in New Issue
Block a user