-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Closed
Description
Context
- node version:10.16.3
- joi version:16.1.4
- environment (node, browser):node
- used with (hapi, standalone, ...):hapi/standalone
- any other relevant information:
What are you trying to achieve or the steps to reproduce ?
Trying to validate two fields, making sure they are the same. Use case: password + re_password fields. This worked on Joi v15 but doesn't appear to work with Joi v16.
const schema = Joi.object().keys({
key_first: Joi.string().required(),
key_second: Joi.string().required().valid(Joi.ref('key_first')).error(() => 'key_second must match key_first'),
})
schema.validate({
key_first: 'something',
key_second: 'something else',
}, {abortEarly: false})Seems to work if I remove the error() call. The problem is item.path is undefined, and it throws an exception.
Which result you had ?
Debug: internal, implementation, error
TypeError: Cannot read property 'filter' of undefined
at Object.exports.details (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/errors.js:227:29)
at Object.exports.process (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/errors.js:177:52)
at Object.internals.entry (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/validator.js:139:26)
at Object.exports.entry (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/validator.js:25:30)
at internals.Base.validate (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/base.js:531:26)
at handler (/home/miroslav/Projects/joitest/server.js:18:12)
at module.exports.internals.Manager.execute (/home/miroslav/Projects/joitest/node_modules/@hapi/hapi/lib/toolkit.js:41:33)
at Object.internals.handler (/home/miroslav/Projects/joitest/node_modules/@hapi/hapi/lib/handler.js:46:48)
at exports.execute (/home/miroslav/Projects/joitest/node_modules/@hapi/hapi/lib/handler.js:31:36)
at Request._lifecycle (/home/miroslav/Projects/joitest/node_modules/@hapi/hapi/lib/request.js:312:68)
Debug: internal, implementation, error
TypeError: Cannot read property 'filter' of undefined
at Object.exports.details (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/errors.js:227:29)
at Object.exports.process (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/errors.js:177:52)
at Object.internals.entry (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/validator.js:139:26)
at Object.exports.entry (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/validator.js:25:30)
at internals.Base.validate (/home/miroslav/Projects/joitest/node_modules/@hapi/joi/lib/base.js:531:26)
at handler (/home/miroslav/Projects/joitest/server.js:18:12)
at module.exports.internals.Manager.execute (/home/miroslav/Projects/joitest/node_modules/@hapi/hapi/lib/toolkit.js:41:33)
at Object.internals.handler (/home/miroslav/Projects/joitest/node_modules/@hapi/hapi/lib/handler.js:46:48)
at exports.execute (/home/miroslav/Projects/joitest/node_modules/@hapi/hapi/lib/handler.js:31:36)
at Request._lifecycle (/home/miroslav/Projects/joitest/node_modules/@hapi/hapi/lib/request.js:312:68)
What did you expect ?
{
value: {...}
error: {...}
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugBug or defectBug or defect