ajv-validator / ajv-validator/ajv

`minProperties` and `removeAdditional` does not collaborate well

Abierto
#2,541 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug report
Lenguaje dominante
TypeScript
Estrellas
14.8k
Forks
1k
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**What version of Ajv are you using? Does the issue happen if you use the latest version?**

latest (8.17.1)

**Ajv options object**

```javascript
{ removeAdditional: "all" }
```

**JSON Schema**

```json
{
"type": "object",
"minProperties": 1,
"properties": {
"foo": {
"type": "string"
},
"bar": {
"type": "string"
}
}
}
```

**Sample data**

```javascript
const shouldError1 = {};
const shouldError2 = { foobar: "baz" };
const shouldPass = { foo: "bar" };
```

**Your code**
**Validation result, data AFTER validation, error messages**

```javascript
const validate = new Ajv(options).compile(schema);

const shouldError1 = {};
console.log(validate(shouldError1), shouldError1); // valid = false, data = {}

const shouldError2 = { foobar: "baz" };
console.log(validate(shouldError2), shouldError2); // valid = true, data = {}

const shouldPass = { foo: "bar" };
console.log(validate(shouldPass), shouldPass); // valid = true, data = { foo: "bar" }
```

**What results did you expect?**

The object with only additional properties is expected to have error for not satisfy the `minProperties` constraint after additional properties has been removed.

**Are you going to resolve the issue?**

Currently not yet.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.