atlassian / atlassian/better-ajv-errors
better-ajv-errors shows only one missing required field error instead of all missing fields
- Dominant language
- JavaScript
- Stars
- 245
- Forks
- 50
- PR merge metrics
- No merged PRs in 30d
Description
Hi all!
When validating JSON data against a schema with multiple required fields, if the data is missing more than one required field, better-ajv-errors returns only the first missing field error. (ajv validate return both of them)
I expect it to show errors for all missing required fields.
I think this is a critical issue for users relying on comprehensive validation feedback, and I would be glad if someone could help resolve it.
I add a small example:
**schema.json**
`{
"type": "object",
"properties": {
"updated": {
"type": "string",
"format": "date-time",
"title": "Updated",
"description": "The date and time (timestamp) when the vulnerability record was last updated."
},
"updated2": {
"type": "string",
"format": "date-time",
"title": "Updated",
"description": "The date and time (timestamp) when the vulnerability record was last updated."
}
},
"required": [
"updated",
"updated2"
],
"additionalProperties": false
}`
**index.js**
```
const fs = require('fs');
const Ajv = require('ajv');
const betterAjvErrors = require('better-ajv-errors').default;
const schema = JSON.parse(fs.readFileSync('./schema.json', 'utf-8'));
// Example data to validate
const dataSamples = [
{ updated: "2023-06-05T15:30:00Z", updated2: "2023-06-05T15:30:00Z" }, // valid
{ notUpdated: "2023-06-05T15:30:00Z" }, // missing required "updated"
];
const ajv = new Ajv({ allErrors: true, strict: false });
require('ajv-formats')(ajv);
const validate = ajv.compile(schema);
dataSamples.forEach((data, index) => {
const valid = validate(data);
console.log(`\nSample #${index + 1}:`, data);
if (!valid) {
console.log('Validation errors from ajv:\n',validate.errors);
const output = betterAjvErrors(schema, data, validate.errors, { format: 'cli' });
console.log('Validation errors:\n', output);
} else {
console.log('Validation passed!');
}
});
```
**screenshot output - only the first missing required field error is shown.**
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.