Buckets:
| // @ts-ignore TS6133 | |
| import { expect, test } from "vitest"; | |
| import * as z from "zod/v3"; | |
| test("function parsing", () => { | |
| const schema = z.union([z.string().refine(() => false), z.number().refine(() => false)]); | |
| const result = schema.safeParse("asdf"); | |
| expect(result.success).toEqual(false); | |
| }); | |
| test("union 2", () => { | |
| const result = z.union([z.number(), z.string().refine(() => false)]).safeParse("a"); | |
| expect(result.success).toEqual(false); | |
| }); | |
| test("return valid over invalid", () => { | |
| const schema = z.union([ | |
| z.object({ | |
| email: z.string().email(), | |
| }), | |
| z.string(), | |
| ]); | |
| expect(schema.parse("asdf")).toEqual("asdf"); | |
| expect(schema.parse({ email: "asdlkjf@lkajsdf.com" })).toEqual({ | |
| email: "asdlkjf@lkajsdf.com", | |
| }); | |
| }); | |
| test("return dirty result over aborted", () => { | |
| const result = z.union([z.number(), z.string().refine(() => false)]).safeParse("a"); | |
| expect(result.success).toEqual(false); | |
| if (!result.success) { | |
| expect(result.error.issues).toEqual([ | |
| { | |
| code: "custom", | |
| message: "Invalid input", | |
| path: [], | |
| }, | |
| ]); | |
| } | |
| }); | |
| test("options getter", async () => { | |
| const union = z.union([z.string(), z.number()]); | |
| union.options[0].parse("asdf"); | |
| union.options[1].parse(1234); | |
| await union.options[0].parseAsync("asdf"); | |
| await union.options[1].parseAsync(1234); | |
| }); | |
| test("readonly union", async () => { | |
| const options = [z.string(), z.number()] as const; | |
| const union = z.union(options); | |
| union.parse("asdf"); | |
| union.parse(12); | |
| }); | |
Xet Storage Details
- Size:
- 1.54 kB
- Xet hash:
- 7fd1dfede3f64fc861bbdb2c59ace3bbec1b29de4afb19ab005a72ade0d8b498
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.