UNPKG

@rudderstack/integrations-lib

Version:
48 lines 5.68 kB
"use strict"; 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