Files
SnowLuma/.pnpm-store/v11/files/50/e20ba9a2d8aaa7e10b391c5508578e0e33df1735570d1454f15a54daab6e0e9823c3177a2796dcf3e3998dd05a54a0de72da7f2e852324c09b3691565fdfef
TanTan 2a69b23b47
Dev Build / cleanup (push) Canceled after 0s
Dev Build / typecheck (push) Canceled after 0s
Dev Build / build (linux-arm64, ubuntu-24.04-arm, linux-arm64) (push) Canceled after 0s
Dev Build / build (linux-x64, ubuntu-latest, linux-x64) (push) Canceled after 0s
Dev Build / build (win-x64, windows-latest, win32-x64) (push) Canceled after 0s
Dev Build / dispatch-dev-docker (push) Skipped
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

31 lines
1.0 KiB
Plaintext

import { expect, test } from "vitest";
import * as z from "zod/mini";
import { util as zc } from "zod/v4/core";
// checks no longer write metadata into the bag at attach time; the converter folds the checks itself, so the derived values are asserted through it
test("min/max", () => {
const a = z.number().check(z.minimum(5), z.minimum(6), z.minimum(7), z.maximum(10), z.maximum(11), z.maximum(12));
expect(z.toJSONSchema(a)).toMatchObject({ minimum: 7, maximum: 10 });
expect(a._zod.bag).toEqual({});
});
test("multipleOf", () => {
const b = z.number().check(z.multipleOf(5));
expect(z.toJSONSchema(b)).toMatchObject({ multipleOf: 5 });
});
test("int32 format", () => {
const d = z.int32();
expect(z.toJSONSchema(d)).toMatchObject({
type: "integer",
minimum: zc.NUMBER_FORMAT_RANGES.int32[0],
maximum: zc.NUMBER_FORMAT_RANGES.int32[1],
});
});
test("array size", () => {
const e = z.array(z.string()).check(z.length(5));
expect(z.toJSONSchema(e)).toMatchObject({ minItems: 5, maxItems: 5 });
});