diff --git a/packages/contracts/test/schemas.test.ts b/packages/contracts/test/schemas.test.ts index 29769c75..449b56a7 100644 --- a/packages/contracts/test/schemas.test.ts +++ b/packages/contracts/test/schemas.test.ts @@ -14,6 +14,8 @@ interface Def { entries?: Record; values?: unknown[]; element?: z.ZodType; + keyType?: z.ZodType; + valueType?: z.ZodType; in?: z.ZodType; defaultValue?: unknown; } @@ -73,8 +75,11 @@ function sample(schema: z.ZodType): unknown { return sample(d.innerType!); case "array": return [sample(d.element!)]; - case "record": - return { k: "v" }; + case "record": { + const key = def(d.keyType!); + const keys = key.type === "enum" ? Object.values(key.entries!) : [String(sample(d.keyType!))]; + return Object.fromEntries(keys.map((k) => [k, sample(d.valueType!)])); + } case "unknown": return { any: 1 }; case "union":