zod-error
Version:
Utilities to format and customize Zod error messages
29 lines (28 loc) • 1.25 kB
JavaScript
;
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')));