diff --git a/packages/zod/src/converter.test.ts b/packages/zod/src/converter.test.ts index aa93e52a3..d97128650 100644 --- a/packages/zod/src/converter.test.ts +++ b/packages/zod/src/converter.test.ts @@ -193,7 +193,7 @@ const nativeCases: SchemaTestCase[] = [ }, { schema: z.enum(['a', 'b']), - input: [true, { enum: ['a', 'b'] }], + input: [true, { type: 'string', enum: ['a', 'b'] }], }, { schema: z.nativeEnum(ExampleEnum), diff --git a/packages/zod/src/converter.ts b/packages/zod/src/converter.ts index 7f0f5221d..66443b11a 100644 --- a/packages/zod/src/converter.ts +++ b/packages/zod/src/converter.ts @@ -343,7 +343,7 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { case ZodFirstPartyTypeKind.ZodEnum: { const schema_ = schema as ZodEnum<[string, ...string[]]> - return [true, { enum: schema_._def.values }] + return [true, { type: 'string', enum: schema_._def.values }] } case ZodFirstPartyTypeKind.ZodNativeEnum: { diff --git a/packages/zod/src/zod4/converter.native.test.ts b/packages/zod/src/zod4/converter.native.test.ts index 1133692fd..2f062959b 100644 --- a/packages/zod/src/zod4/converter.native.test.ts +++ b/packages/zod/src/zod4/converter.native.test.ts @@ -90,12 +90,12 @@ testSchemaConverter([ { name: 'enum(["a", "b"])', schema: z.enum(['a', 'b']), - input: [true, { enum: ['a', 'b'] }], + input: [true, { type: 'string', enum: ['a', 'b'] }], }, { name: 'enum(ExampleEnum)', schema: z.enum(ExampleEnum), - input: [true, { enum: ['a', 'b'] }], + input: [true, { type: 'string', enum: ['a', 'b'] }], }, { name: 'file()', diff --git a/packages/zod/src/zod4/converter.structure.test.ts b/packages/zod/src/zod4/converter.structure.test.ts index 334d55610..fe1b6e2df 100644 --- a/packages/zod/src/zod4/converter.structure.test.ts +++ b/packages/zod/src/zod4/converter.structure.test.ts @@ -43,17 +43,17 @@ testSchemaConverter([ { name: 'tuple([z.enum(["a", "b"])])', schema: z.tuple([z.enum(['a', 'b'])]), - input: [true, { type: 'array', prefixItems: [{ enum: ['a', 'b'] }] }], + input: [true, { type: 'array', prefixItems: [{ type: 'string', enum: ['a', 'b'] }] }], }, { name: 'tuple([z.enum(["a", "b"])], z.string())', schema: z.tuple([z.enum(['a', 'b'])], z.string()), - input: [true, { type: 'array', prefixItems: [{ enum: ['a', 'b'] }], items: { type: 'string' } }], + input: [true, { type: 'array', prefixItems: [{ type: 'string', enum: ['a', 'b'] }], items: { type: 'string' } }], }, { name: 'zm.tuple([zm.enum(["a", "b"])], zm.string()).check(zm.minLength(4), zm.maxLength(10))', schema: zm.tuple([zm.enum(['a', 'b'])], zm.string()).check(zm.minLength(4), zm.maxLength(10)), - input: [true, { type: 'array', prefixItems: [{ enum: ['a', 'b'] }], items: { type: 'string' }, minItems: 4, maxItems: 10 }], + input: [true, { type: 'array', prefixItems: [{ type: 'string', enum: ['a', 'b'] }], items: { type: 'string' }, minItems: 4, maxItems: 10 }], }, { name: 'set(z.string())', diff --git a/packages/zod/src/zod4/converter.ts b/packages/zod/src/zod4/converter.ts index 9347b6242..dab96698a 100644 --- a/packages/zod/src/zod4/converter.ts +++ b/packages/zod/src/zod4/converter.ts @@ -430,7 +430,7 @@ export class ZodToJsonSchemaConverter implements ConditionalSchemaConverter { case 'enum': { const enum_ = schema as $ZodEnum - return [true, { enum: Object.values(enum_._zod.def.entries) }] + return [true, { type: 'string', enum: Object.values(enum_._zod.def.entries) }] } case 'literal': {