I have a case where I want to rename a field to override another field. If the value of the field being renamed is undefined, renaming does not work.
var Joi = require('joi');
var obj = { deleted: true }
var schema = Joi.object().rename('other', 'deleted', { override: true }).keys({ deleted: Joi.any().optional() });
Joi.validate(obj, schema, { stripUnknown: true }).value;
// => { deleted: true } instead of { }