diff --git a/package.json b/package.json index 0f69ddc..56ecc3c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "json-validations-lib", - "version": "1.1.0", + "version": "1.2.0", "scripts": { "test-units": "cross-env BUILD_ENV=test DEBUG=amio* mocha test/test_unit/**/*.test.js --reporter mocha-multi-reporters --reporter-options configFile=test/mocha-reporters-config.json", "can-publish-nix": "npm info $npm_package_name version | npm-version-bump-checker", diff --git a/src/utils/validation-errors-converter.js b/src/utils/validation-errors-converter.js index 1c13147..2aa371d 100644 --- a/src/utils/validation-errors-converter.js +++ b/src/utils/validation-errors-converter.js @@ -22,6 +22,14 @@ function convertValidationError(error) { return new SchemaValidatorError(`Property '${propName}' must have value '${params.allowedValue}'.`, errorObject.dataPath, errorObject.data) case 'enum': return convertEnum(errorObject.data, errorObject.dataPath, params, propName, errorObject.schemaPath) + case 'keys_not_equal': {// non-schema error + const message = `Provided keys do not match expected keys: ${params.originalKeys}.` + return new SchemaValidatorError(message, errorObject.dataPath, errorObject.data) + } + case 'not_found':// non-schema error + const notFoundPropName = params.notFoundPropName + const message = `Cannot find ${notFoundPropName} with id ${errorObject.data}.` + return new SchemaValidatorError(message, errorObject.dataPath, errorObject.data) case 'format': if(errorObject.params.format === 'httpUrl') { const message = `Property '${propName}' must be a valid URL. Current value is "${errorObject.data}"` diff --git a/test/test_unit/validation-errors-converter.test.js b/test/test_unit/validation-errors-converter.test.js index 36613c9..720ffc7 100644 --- a/test/test_unit/validation-errors-converter.test.js +++ b/test/test_unit/validation-errors-converter.test.js @@ -1,5 +1,6 @@ const expect = require('chai').expect const SchemaValidator = require('../../src/schema-validator') +const ValidationErrorsConverter = require('../../src/utils/validation-errors-converter') const clone = require('ramda/src/clone') describe('validation-error-converter test', () => { @@ -159,4 +160,21 @@ describe('validation-error-converter test', () => { rejected_value: 'invalid-email' }) }) + + it('not_found', () => { + const schemaError = { + keyword: 'not_found', + dataPath: 'message_template.id', + data: 1, + params: { + notFoundPropName: 'message_template' + } + } + const result = ValidationErrorsConverter.convertValidationError(schemaError) + expect(result).to.include({ + message: 'Cannot find message_template with id 1.', + field: 'message_template.id', + rejected_value: 1 + }) + }) })