Entonces, estoy tratando de validar si se requiere un campo dado un escenario específico. Como esto:
cake: Joi.object().keys({ flavor: Joi.string().max(45).required(), price: Joi.string().length(2).required(), topping: Joi.string().length(2).required() })
y en el mismo esquema tengo:
authentication: Joi.object().keys({ password: Joi.string().max(45).required(), login64: Joi.string().max(45).required() })
y quiero hacer una validación como:
authentication: Joi.object().keys({ password: Joi.string().max(45).required(), login64: Joi.string().max(45).when('cake.flavor', { is: 'chocolate', then: Joi.required()
} })
quiero hacer que se requiera login64 si el sabor del pastel es chocolate. Pero nada parece funcionar...
Una referencia de Joy es por defecto relativa al padre del valor actual, que en su caso es authentication
. Tienes que subir un par de niveles ( ...
) para llegar al cake
:
login64: Joi.string().max(45).when('...cake.flavor', { is: 'chocolate', then: Joi.required() })