mirror of
https://github.com/langgenius/dify.git
synced 2026-03-04 23:36:20 +08:00
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import * as z from 'zod'
|
|
import { zodSubmitValidator } from './zod-submit-validator'
|
|
|
|
describe('zodSubmitValidator', () => {
|
|
it('should return undefined for valid values', () => {
|
|
const validator = zodSubmitValidator(z.object({
|
|
name: z.string().min(2),
|
|
}))
|
|
|
|
expect(validator({ value: { name: 'Alice' } })).toBeUndefined()
|
|
})
|
|
|
|
it('should return first error message per field for invalid values', () => {
|
|
const validator = zodSubmitValidator(z.object({
|
|
name: z.string().min(3, 'Name too short'),
|
|
age: z.number().min(18, 'Must be adult'),
|
|
}))
|
|
|
|
expect(validator({ value: { name: 'Al', age: 15 } })).toEqual({
|
|
fields: {
|
|
name: 'Name too short',
|
|
age: 'Must be adult',
|
|
},
|
|
})
|
|
})
|
|
|
|
it('should ignore root-level issues without a field path', () => {
|
|
const schema = z.object({ value: z.number() }).superRefine((_value, ctx) => {
|
|
ctx.addIssue({
|
|
code: z.ZodIssueCode.custom,
|
|
message: 'Root error',
|
|
path: [],
|
|
})
|
|
})
|
|
const validator = zodSubmitValidator(schema)
|
|
|
|
expect(validator({ value: { value: 1 } })).toEqual({ fields: {} })
|
|
})
|
|
})
|