У меня есть следующая схема проверки и пример данных.
var schema = Joi.alternatives().try(
Joi.object().keys({
searchTerm: Joi.string().trim().min(3).label('Search Term').options({ language: { any: { empty: 'should not be empty' } } }),
location: Joi.string().allow(''),
searchType: Joi.string().valid('people')
}),
Joi.object().keys({
searchTerm: Joi.string().allow(''),
location: Joi.string().trim().min(3).label('Location').options({ language: { any: { empty: 'should not be empty' } } }),
searchType: Joi.string().valid('people')
})
);
Пример данных:
{searchTerm: "", searchType: "people", location: ""}
Не должен пройти и показать сообщение Please enter either search term or location. Make sure it contains 3 characters at least
{searchTerm: "as", searchType: "people", location: ""}
Не должен проходить и показывать сообщение Search term must contain 3 characters at least
{searchTerm: "test", searchType: "people", location: ""} // Should pass
Моя схема проверки показывает оба сообщения в ситуациях сбоя