@rudderstack/integrations-lib
Version:
48 lines • 5.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const zod_1 = require("zod");
const zod_2 = require("./zod");
describe('zod', () => {
describe('formatZodError', () => {
const testCases = [
{
name: 'single field validation error',
schema: zod_1.z.object({ name: zod_1.z.string().min(3) }),
input: { name: 'ab' },
expected: 'name: String must contain at least 3 character(s)',
},
{
name: 'multiple field validation errors',
schema: zod_1.z.object({
email: zod_1.z.string().email(),
age: zod_1.z.number().min(18),
}),
input: { email: 'notanemail', age: 16 },
expected: 'email: Invalid email; age: Number must be greater than or equal to 18',
},
{
name: 'nested object validation error',
schema: zod_1.z.object({
user: zod_1.z.object({
address: zod_1.z.object({
zipCode: zod_1.z.string().length(5),
}),
}),
}),
input: { user: { address: { zipCode: '123' } } },
expected: 'user.address.zipCode: String must contain exactly 5 character(s)',
},
];
testCases.forEach(({ name, schema, input, expected }) => {
it(name, () => {
try {
schema.parse(input);
}
catch (error) {
expect((0, zod_2.formatZodError)(error)).toBe(expected);
}
});
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiem9kLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvem9kLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBd0I7QUFDeEIsK0JBQXVDO0FBRXZDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFO0lBQ25CLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7UUFDOUIsTUFBTSxTQUFTLEdBQUc7WUFDaEI7Z0JBQ0UsSUFBSSxFQUFFLCtCQUErQjtnQkFDckMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO2dCQUNyQixRQUFRLEVBQUUsbURBQW1EO2FBQzlEO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLGtDQUFrQztnQkFDeEMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLENBQUM7b0JBQ2YsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUU7b0JBQ3pCLEdBQUcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztpQkFDeEIsQ0FBQztnQkFDRixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7Z0JBQ3ZDLFFBQVEsRUFBRSx1RUFBdUU7YUFDbEY7WUFDRDtnQkFDRSxJQUFJLEVBQUUsZ0NBQWdDO2dCQUN0QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQztvQkFDZixJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQzt3QkFDYixPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sQ0FBQzs0QkFDaEIsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO3lCQUM5QixDQUFDO3FCQUNILENBQUM7aUJBQ0gsQ0FBQztnQkFDRixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtnQkFDaEQsUUFBUSxFQUFFLGtFQUFrRTthQUM3RTtTQUNGLENBQUM7UUFFRixTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFO1lBQ3RELEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQztvQkFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN0QixDQUFDO2dCQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7b0JBQ2YsTUFBTSxDQUFDLElBQUEsb0JBQWMsRUFBQyxLQUFtQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzdELENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHogfSBmcm9tICd6b2QnO1xuaW1wb3J0IHsgZm9ybWF0Wm9kRXJyb3IgfSBmcm9tICcuL3pvZCc7XG5cbmRlc2NyaWJlKCd6b2QnLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdmb3JtYXRab2RFcnJvcicsICgpID0+IHtcbiAgICBjb25zdCB0ZXN0Q2FzZXMgPSBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaW5nbGUgZmllbGQgdmFsaWRhdGlvbiBlcnJvcicsXG4gICAgICAgIHNjaGVtYTogei5vYmplY3QoeyBuYW1lOiB6LnN0cmluZygpLm1pbigzKSB9KSxcbiAgICAgICAgaW5wdXQ6IHsgbmFtZTogJ2FiJyB9LFxuICAgICAgICBleHBlY3RlZDogJ25hbWU6IFN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QgMyBjaGFyYWN0ZXIocyknLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ211bHRpcGxlIGZpZWxkIHZhbGlkYXRpb24gZXJyb3JzJyxcbiAgICAgICAgc2NoZW1hOiB6Lm9iamVjdCh7XG4gICAgICAgICAgZW1haWw6IHouc3RyaW5nKCkuZW1haWwoKSxcbiAgICAgICAgICBhZ2U6IHoubnVtYmVyKCkubWluKDE4KSxcbiAgICAgICAgfSksXG4gICAgICAgIGlucHV0OiB7IGVtYWlsOiAnbm90YW5lbWFpbCcsIGFnZTogMTYgfSxcbiAgICAgICAgZXhwZWN0ZWQ6ICdlbWFpbDogSW52YWxpZCBlbWFpbDsgYWdlOiBOdW1iZXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMTgnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25lc3RlZCBvYmplY3QgdmFsaWRhdGlvbiBlcnJvcicsXG4gICAgICAgIHNjaGVtYTogei5vYmplY3Qoe1xuICAgICAgICAgIHVzZXI6IHoub2JqZWN0KHtcbiAgICAgICAgICAgIGFkZHJlc3M6IHoub2JqZWN0KHtcbiAgICAgICAgICAgICAgemlwQ29kZTogei5zdHJpbmcoKS5sZW5ndGgoNSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSksXG4gICAgICAgIGlucHV0OiB7IHVzZXI6IHsgYWRkcmVzczogeyB6aXBDb2RlOiAnMTIzJyB9IH0gfSxcbiAgICAgICAgZXhwZWN0ZWQ6ICd1c2VyLmFkZHJlc3MuemlwQ29kZTogU3RyaW5nIG11c3QgY29udGFpbiBleGFjdGx5IDUgY2hhcmFjdGVyKHMpJyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7IG5hbWUsIHNjaGVtYSwgaW5wdXQsIGV4cGVjdGVkIH0pID0+IHtcbiAgICAgIGl0KG5hbWUsICgpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBzY2hlbWEucGFyc2UoaW5wdXQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGV4cGVjdChmb3JtYXRab2RFcnJvcihlcnJvciBhcyB6LlpvZEVycm9yKSkudG9CZShleHBlY3RlZCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19