/opt/canhelp/node_modules/zod/src/v3/tests
NameSizeModeActions
all-errors.test.ts47530644editdlrm
anyunknown.test.ts6730644editdlrm
array.test.ts19390644editdlrm
async-parsing.test.ts126390644editdlrm
async-refinements.test.ts16030644editdlrm
base.test.ts7820644editdlrm
bigint.test.ts19770644editdlrm
branded.test.ts17340644editdlrm
catch.test.ts65500644editdlrm
coerce.test.ts66500644editdlrm
complex.test.ts19140644editdlrm
custom.test.ts9500644editdlrm
date.test.ts9830644editdlrm
deepmasking.test.ts52150644editdlrm
default.test.ts35270644editdlrm
description.test.ts13230644editdlrm
discriminated-unions.test.ts85370644editdlrm
enum.test.ts27370644editdlrm
error.test.ts168120644editdlrm
firstparty.test.ts23910644editdlrm
firstpartyschematypes.test.ts7880644editdlrm
function.test.ts65780644editdlrm
generics.test.ts15230644editdlrm
instanceof.test.ts11540644editdlrm
intersection.test.ts30910644editdlrm
language-server.source.ts12750644editdlrm
language-server.test.ts83180644editdlrm
literal.test.ts10630644editdlrm
map.test.ts35450644editdlrm
masking.test.ts850644editdlrm
mocker.test.ts3890644editdlrm
Mocker.ts13410644editdlrm
nan.test.ts5870644editdlrm
nativeEnum.test.ts23440644editdlrm
nullable.test.ts11720644editdlrm
number.test.ts63730644editdlrm
object-augmentation.test.ts5690644editdlrm
object-in-es5-env.test.ts7780644editdlrm
object.test.ts117720644editdlrm
optional.test.ts12220644editdlrm
parser.test.ts11250644editdlrm
parseUtil.test.ts8690644editdlrm
partials.test.ts69960644editdlrm
pickomit.test.ts36220644editdlrm
pipeline.test.ts8230644editdlrm
preprocess.test.ts45300644editdlrm
primitive.test.ts122150644editdlrm
promise.test.ts24900644editdlrm
readonly.test.ts73390644editdlrm
record.test.ts37350644editdlrm
recursive.test.ts39460644editdlrm
refine.test.ts81720644editdlrm
safeparse.test.ts6280644editdlrm
set.test.ts47880644editdlrm
standard-schema.test.ts25870644editdlrm
string.test.ts656230644editdlrm
transformer.test.ts56870644editdlrm
tuple.test.ts26910644editdlrm
unions.test.ts15400644editdlrm
validations.test.ts38260644editdlrm
void.test.ts3490644editdlrm
Edit: /opt/canhelp/node_modules/zod/src/v3/tests/intersection.test.ts (3091B)
// @ts-ignore TS6133 import { expect, test } from "vitest"; import * as z from "zod/v3"; test("object intersection", () => { const BaseTeacher = z.object({ subjects: z.array(z.string()), }); const HasID = z.object({ id: z.string() }); const Teacher = z.intersection(BaseTeacher.passthrough(), HasID); // BaseTeacher.merge(HasID); const data = { subjects: ["math"], id: "asdfasdf", }; expect(Teacher.parse(data)).toEqual(data); expect(() => Teacher.parse({ subject: data.subjects })).toThrow(); expect(Teacher.parse({ ...data, extra: 12 })).toEqual({ ...data, extra: 12 }); expect(() => z.intersection(BaseTeacher.strict(), HasID).parse({ ...data, extra: 12 })).toThrow(); }); test("deep intersection", () => { const Animal = z.object({ properties: z.object({ is_animal: z.boolean(), }), }); const Cat = z .object({ properties: z.object({ jumped: z.boolean(), }), }) .and(Animal); type _Cat = z.infer; // const cat:Cat = 'asdf' as any; const cat = Cat.parse({ properties: { is_animal: true, jumped: true } }); expect(cat.properties).toEqual({ is_animal: true, jumped: true }); }); test("deep intersection of arrays", async () => { const Author = z.object({ posts: z.array( z.object({ post_id: z.number(), }) ), }); const Registry = z .object({ posts: z.array( z.object({ title: z.string(), }) ), }) .and(Author); const posts = [ { post_id: 1, title: "Novels" }, { post_id: 2, title: "Fairy tales" }, ]; const cat = Registry.parse({ posts }); expect(cat.posts).toEqual(posts); const asyncCat = await Registry.parseAsync({ posts }); expect(asyncCat.posts).toEqual(posts); }); test("invalid intersection types", async () => { const numberIntersection = z.intersection( z.number(), z.number().transform((x) => x + 1) ); const syncResult = numberIntersection.safeParse(1234); expect(syncResult.success).toEqual(false); if (!syncResult.success) { expect(syncResult.error.issues[0].code).toEqual(z.ZodIssueCode.invalid_intersection_types); } const asyncResult = await numberIntersection.spa(1234); expect(asyncResult.success).toEqual(false); if (!asyncResult.success) { expect(asyncResult.error.issues[0].code).toEqual(z.ZodIssueCode.invalid_intersection_types); } }); test("invalid array merge", async () => { const stringArrInt = z.intersection( z.string().array(), z .string() .array() .transform((val) => [...val, "asdf"]) ); const syncResult = stringArrInt.safeParse(["asdf", "qwer"]); expect(syncResult.success).toEqual(false); if (!syncResult.success) { expect(syncResult.error.issues[0].code).toEqual(z.ZodIssueCode.invalid_intersection_types); } const asyncResult = await stringArrInt.spa(["asdf", "qwer"]); expect(asyncResult.success).toEqual(false); if (!asyncResult.success) { expect(asyncResult.error.issues[0].code).toEqual(z.ZodIssueCode.invalid_intersection_types); } });