UNPKG

zod

Version:

TypeScript-first schema declaration and validation library with static type inference

187 lines (162 loc) 5.21 kB
// @ts-ignore TS6133 import { test } from "vitest"; import * as z from "zod/v3"; test("test", () => { z; }); // const fish = z.object({ // name: z.string(), // props: z.object({ // color: z.string(), // numScales: z.number(), // }), // }); // const nonStrict = z // .object({ // name: z.string(), // color: z.string(), // }) // .nonstrict(); // test('object pick type', () => { // const modNonStrictFish = nonStrict.omit({ name: true }); // modNonStrictFish.parse({ color: 'asdf' }); // const bad1 = () => fish.pick({ props: { unknown: true } } as any); // const bad2 = () => fish.omit({ name: true, props: { unknown: true } } as any); // expect(bad1).toThrow(); // expect(bad2).toThrow(); // }); // test('f1', () => { // const f1 = fish.pick(true); // f1.parse({ name: 'a', props: { color: 'b', numScales: 3 } }); // }); // test('f2', () => { // const f2 = fish.pick({ props: true }); // f2.parse({ props: { color: 'asdf', numScales: 1 } }); // const badcheck2 = () => f2.parse({ name: 'a', props: { color: 'b', numScales: 3 } } as any); // expect(badcheck2).toThrow(); // }); // test('f3', () => { // const f3 = fish.pick({ props: { color: true } }); // f3.parse({ props: { color: 'b' } }); // const badcheck3 = () => f3.parse({ name: 'a', props: { color: 'b', numScales: 3 } } as any); // expect(badcheck3).toThrow(); // }); // test('f4', () => { // const badcheck4 = () => fish.pick({ props: { color: true, unknown: true } }); // expect(badcheck4).toThrow(); // }); // test('f6', () => { // const f6 = fish.omit({ props: true }); // const badcheck6 = () => f6.parse({ name: 'a', props: { color: 'b', numScales: 3 } } as any); // f6.parse({ name: 'adsf' }); // expect(badcheck6).toThrow(); // }); // test('f7', () => { // const f7 = fish.omit({ props: { color: true } }); // f7.parse({ name: 'a', props: { numScales: 3 } }); // const badcheck7 = () => f7.parse({ name: 'a', props: { color: 'b', numScales: 3 } } as any); // expect(badcheck7).toThrow(); // }); // test('f8', () => { // const badcheck8 = () => fish.omit({ props: { color: true, unknown: true } }); // expect(badcheck8).toThrow(); // }); // test('f9', () => { // const f9 = nonStrict.pick(true); // f9.parse({ name: 'a', color: 'asdf' }); // }); // test('f10', () => { // const f10 = nonStrict.pick({ name: true }); // f10.parse({ name: 'a' }); // const val = f10.parse({ name: 'a', color: 'b' }); // expect(val).toEqual({ name: 'a' }); // }); // test('f12', () => { // const badfcheck12 = () => nonStrict.omit({ color: true, asdf: true }); // expect(badfcheck12).toThrow(); // }); // test('array masking', () => { // const fishArray = z.array(fish); // const modFishArray = fishArray.pick({ // name: true, // props: { // numScales: true, // }, // }); // modFishArray.parse([{ name: 'fish', props: { numScales: 12 } }]); // const bad1 = () => modFishArray.parse([{ name: 'fish', props: { numScales: 12, color: 'asdf' } }] as any); // expect(bad1).toThrow(); // }); // test('array masking', () => { // const fishArray = z.array(fish); // const fail = () => // fishArray.pick({ // name: true, // props: { // whatever: true, // }, // } as any); // expect(fail).toThrow(); // }); // test('array masking', () => { // const fishArray = z.array(fish); // const fail = () => // fishArray.omit({ // whateve: true, // } as any); // expect(fail).toThrow(); // }); // test('array masking', () => { // const fishArray = z.array(fish); // const modFishList = fishArray.omit({ // name: true, // props: { // color: true, // }, // }); // modFishList.parse([{ props: { numScales: 12 } }]); // const fail = () => modFishList.parse([{ name: 'hello', props: { numScales: 12 } }] as any); // expect(fail).toThrow(); // }); // test('primitive array masking', () => { // const fishArray = z.array(z.number()); // const fail = () => fishArray.pick({} as any); // expect(fail).toThrow(); // }); // test('other array masking', () => { // const fishArray = z.array(z.array(z.number())); // const fail = () => fishArray.pick({} as any); // expect(fail).toThrow(); // }); // test('invalid mask #1', () => { // const fail = () => fish.pick(1 as any); // expect(fail).toThrow(); // }); // test('invalid mask #2', () => { // const fail = () => fish.pick([] as any); // expect(fail).toThrow(); // }); // test('invalid mask #3', () => { // const fail = () => fish.pick(false as any); // expect(fail).toThrow(); // }); // test('invalid mask #4', () => { // const fail = () => fish.pick('asdf' as any); // expect(fail).toThrow(); // }); // test('invalid mask #5', () => { // const fail = () => fish.omit(1 as any); // expect(fail).toThrow(); // }); // test('invalid mask #6', () => { // const fail = () => fish.omit([] as any); // expect(fail).toThrow(); // }); // test('invalid mask #7', () => { // const fail = () => fish.omit(false as any); // expect(fail).toThrow(); // }); // test('invalid mask #8', () => { // const fail = () => fish.omit('asdf' as any); // expect(fail).toThrow(); // });