From 5407660e897a328cc546af13a369afee547e5bba Mon Sep 17 00:00:00 2001 From: Fernando Lisboa Costa Date: Wed, 24 Jan 2024 00:09:39 -0300 Subject: [PATCH] feature: allow falsy error message --- deno/lib/__tests__/error.test.ts | 9 +++++++++ deno/lib/helpers/parseUtil.ts | 2 +- src/__tests__/error.test.ts | 9 +++++++++ src/helpers/parseUtil.ts | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) diff --git a/deno/lib/__tests__/error.test.ts b/deno/lib/__tests__/error.test.ts index fb67a857b..28d1772fa 100644 --- a/deno/lib/__tests__/error.test.ts +++ b/deno/lib/__tests__/error.test.ts @@ -516,6 +516,15 @@ test("literal bigint default error message", () => { } }); +test.only("when the message is falsy, it is used as is provided", () => { + const schema = z.string().max(1, { message: "" }); + const result = schema.safeParse("asdf"); + expect(result.success).toEqual(false); + if (!result.success) { + expect(result.error.issues[0].message).toEqual(""); + } +}); + // test("dont short circuit on continuable errors", () => { // const user = z // .object({ diff --git a/deno/lib/helpers/parseUtil.ts b/deno/lib/helpers/parseUtil.ts index a4311a972..d6a8cb39f 100644 --- a/deno/lib/helpers/parseUtil.ts +++ b/deno/lib/helpers/parseUtil.ts @@ -28,7 +28,7 @@ export const makeIssue = (params: { return { ...issueData, path: fullPath, - message: issueData.message || errorMessage, + message: issueData.message ?? errorMessage, }; }; diff --git a/src/__tests__/error.test.ts b/src/__tests__/error.test.ts index a55f80d20..971282247 100644 --- a/src/__tests__/error.test.ts +++ b/src/__tests__/error.test.ts @@ -515,6 +515,15 @@ test("literal bigint default error message", () => { } }); +test.only("when the message is falsy, it is used as is provided", () => { + const schema = z.string().max(1, { message: "" }); + const result = schema.safeParse("asdf"); + expect(result.success).toEqual(false); + if (!result.success) { + expect(result.error.issues[0].message).toEqual(""); + } +}); + // test("dont short circuit on continuable errors", () => { // const user = z // .object({ diff --git a/src/helpers/parseUtil.ts b/src/helpers/parseUtil.ts index 3a278b999..a52cfaccd 100644 --- a/src/helpers/parseUtil.ts +++ b/src/helpers/parseUtil.ts @@ -28,7 +28,7 @@ export const makeIssue = (params: { return { ...issueData, path: fullPath, - message: issueData.message || errorMessage, + message: issueData.message ?? errorMessage, }; };