I have the following schema:
var testSchema = Joi.object().keys({
a: Joi.string(),
b: Joi.string(),
c: Joi.string().when(\'a\', {\'is\': \'aval
You can concatenate two when rules:
var schema = {
a: Joi.string(),
b: Joi.string(),
c: Joi.string().when('a', { is: 'avalue', then: Joi.string().required() }).concat(Joi.string().when('b', { is: 'bvalue', then: Joi.string().required() }))
};
The answer by Gergo Erdosi didn't work with Joi 14.3.0, this resulted in an OR condition:
a === 'avalue' || b === 'bvalue'
The following worked for me:
var schema = {
a: Joi.string(),
b: Joi.string(),
c: Joi.string().when(
'a', {
is: 'avalue',
then: Joi.when(
'b', {
is: 'bvalue',
then: Joi.string().required()
}
)
}
)
};
This results in a === 'avalue' && b === 'bvalue'