full site update
This commit is contained in:
42
node_modules/zod/src/v3/tests/optional.test.ts
generated
vendored
Normal file
42
node_modules/zod/src/v3/tests/optional.test.ts
generated
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
// @ts-ignore TS6133
|
||||
import { expect, test } from "vitest";
|
||||
|
||||
import * as z from "zod/v3";
|
||||
|
||||
function checkErrors(a: z.ZodTypeAny, bad: any) {
|
||||
let expected: any;
|
||||
try {
|
||||
a.parse(bad);
|
||||
} catch (error) {
|
||||
expected = (error as z.ZodError).formErrors;
|
||||
}
|
||||
try {
|
||||
a.optional().parse(bad);
|
||||
} catch (error) {
|
||||
expect((error as z.ZodError).formErrors).toEqual(expected);
|
||||
}
|
||||
}
|
||||
|
||||
test("Should have error messages appropriate for the underlying type", () => {
|
||||
checkErrors(z.string().min(2), 1);
|
||||
z.string().min(2).optional().parse(undefined);
|
||||
checkErrors(z.number().gte(2), 1);
|
||||
z.number().gte(2).optional().parse(undefined);
|
||||
checkErrors(z.boolean(), "");
|
||||
z.boolean().optional().parse(undefined);
|
||||
checkErrors(z.undefined(), null);
|
||||
z.undefined().optional().parse(undefined);
|
||||
checkErrors(z.null(), {});
|
||||
z.null().optional().parse(undefined);
|
||||
checkErrors(z.object({}), 1);
|
||||
z.object({}).optional().parse(undefined);
|
||||
checkErrors(z.tuple([]), 1);
|
||||
z.tuple([]).optional().parse(undefined);
|
||||
checkErrors(z.unknown(), 1);
|
||||
z.unknown().optional().parse(undefined);
|
||||
});
|
||||
|
||||
test("unwrap", () => {
|
||||
const unwrapped = z.string().optional().unwrap();
|
||||
expect(unwrapped).toBeInstanceOf(z.ZodString);
|
||||
});
|
Reference in New Issue
Block a user