Lo siguiente devuelve el éxito, aunque obj contiene un elemento que no está en el esquema.
Pregunta
¿Es posible que la validación falle cuando ve elementos que no están especificados en el esquema?
Jest tiene este expect(obj1).toEqual(obj2) .
Si Validate no puede hacerlo, ¿qué opciones tengo para detectar elementos no deseados?
const Schema = require("validate"); const obj = {good: "1", bad: "2"}; const user = new Schema({ good: { type: String, required: true, } }); const r = user.validate(obj); console.log(r);Sí, hay una opción strict en el Schema , de la documentación :
Esquema
Un esquema define la estructura contra la que se deben validar los objetos.
Parámetros
- definición de esquema
objoptsopciones
opts.typecast
opts.strip
opts.strictLa validación falla cuando el objeto contiene propiedades no definidas en el esquema (opcional, predeterminado falso)
Así que necesitarás algo como:
const options = { strict: true }; const user = new Schema({ good: { type: String, required: true, } }, options);