Buckets:
| // @ts-ignore TS6133 | |
| import { expect, test } from "vitest"; | |
| import * as z from "zod/v3"; | |
| import { util } from "../helpers/util.js"; | |
| test("instanceof", async () => { | |
| class Test {} | |
| class Subtest extends Test {} | |
| abstract class AbstractBar { | |
| constructor(public val: string) {} | |
| } | |
| class Bar extends AbstractBar {} | |
| const TestSchema = z.instanceof(Test); | |
| const SubtestSchema = z.instanceof(Subtest); | |
| const AbstractSchema = z.instanceof(AbstractBar); | |
| const BarSchema = z.instanceof(Bar); | |
| TestSchema.parse(new Test()); | |
| TestSchema.parse(new Subtest()); | |
| SubtestSchema.parse(new Subtest()); | |
| AbstractSchema.parse(new Bar("asdf")); | |
| const bar = BarSchema.parse(new Bar("asdf")); | |
| expect(bar.val).toEqual("asdf"); | |
| await expect(() => SubtestSchema.parse(new Test())).toThrow(/Input not instance of Subtest/); | |
| await expect(() => TestSchema.parse(12)).toThrow(/Input not instance of Test/); | |
| util.assertEqual<Test, z.infer<typeof TestSchema>>(true); | |
| }); | |
| test("instanceof fatal", () => { | |
| const schema = z.instanceof(Date).refine((d) => d.toString()); | |
| const res = schema.safeParse(null); | |
| expect(res.success).toBe(false); | |
| }); | |
Xet Storage Details
- Size:
- 1.15 kB
- Xet hash:
- 2b8f7699091ecf7e5cbfff96b603834f328e48fbf4ccbd7fbdde8be4f7ec873d
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.