UNPKG

zod-error

Version:

Utilities to format and customize Zod error messages

29 lines (28 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const _1 = require("."); const zod_1 = require("zod"); const schema = zod_1.z.object({ dates: zod_1.z.object({ purchased: zod_1.z.date(), fulfilled: zod_1.z.date(), }), item: zod_1.z.string(), price: zod_1.z.number(), }); const data = { dates: { purchased: 'yesterday' }, item: 1, price: '1,000', }; let error; try { schema.parse(data); } catch (e) { error = e; } test('a zod error is transformed to a generic error', () => expect((0, _1.generateError)(error)).toStrictEqual(new Error('Code: invalid_type ~ Path: dates.purchased ~ Message: Expected date, received string | Code: invalid_type ~ Path: dates.fulfilled ~ Message: Required | Code: invalid_type ~ Path: item ~ Message: Expected string, received number | Code: invalid_type ~ Path: price ~ Message: Expected number, received string'))); const nonZodError = new Error('This is not a Zod Error'); test('a generic error to be passed through', () => expect((0, _1.generateError)(nonZodError)).toStrictEqual(nonZodError)); test('a non error type to return an unknown error', () => expect((0, _1.generateError)('nonZodError')).toStrictEqual(new Error('Unknown error')));