Files
SnowLuma/.pnpm-store/v11/files/63/9868b042e30f7af9b2d511449d664de4130a71d8a3692d20f2689286ba4bb9e81270451fbc34b77af4332397221b1255471f873d5c4003637999d3ea8d8988
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

33 lines
1.4 KiB
Plaintext

import { beforeEach, expect, test } from "vitest";
import * as z from "zod/v4";
// English is the default locale and must register on first ZodType construction even when bundlers tree-shake `sideEffects: false` modules (#5953, #5725). Reset between tests so each one observes the lazy init.
beforeEach(() => {
z.config({ localeError: undefined });
});
test("first ZodType construction registers the English default locale", () => {
expect(z.config().localeError).toBeUndefined();
const schema = z.enum(["km", "mi"]);
expect(z.config().localeError).toBeDefined();
const result = schema.safeParse("feet");
expect(result.success).toBe(false);
expect(result.error!.issues[0].message).toBe('Invalid option: expected one of "km"|"mi"');
});
test("explicit locale set before schema construction is preserved", () => {
z.config(z.locales.fr());
const schema = z.enum(["km", "mi"]);
const result = schema.safeParse("feet");
expect(result.success).toBe(false);
expect(result.error!.issues[0].message).toBe('Option invalide : une valeur parmi "km"|"mi" attendue');
});
test("explicit locale set after schema construction overrides default", () => {
const schema = z.enum(["km", "mi"]);
z.config(z.locales.fr());
const result = schema.safeParse("feet");
expect(result.success).toBe(false);
expect(result.error!.issues[0].message).toBe('Option invalide : une valeur parmi "km"|"mi" attendue');
});