From 82438a18866e691bb7aeddfb760f0adc52b95ab0 Mon Sep 17 00:00:00 2001 From: javiertrancoso Date: Thu, 19 Dec 2019 11:19:51 +0100 Subject: [PATCH 1/2] feat: Update after implementing on amio-adapter-whatsapp #7 --- package.json | 2 +- src/utils/validation-errors-converter.js | 8 ++++++++ .../validation-errors-converter.test.js | 18 ++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) 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..921d9ab 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': { + const message = `Provided keys do not match expected keys: ${params.originalKeys}.` + return new SchemaValidatorError(message, errorObject.dataPath, errorObject.data) + } + case 'not_found':// this case use to be async + 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 + }) + }) }) From 5069018cf6ee074dafe8df13615a6509d10199b0 Mon Sep 17 00:00:00 2001 From: javiertrancoso Date: Thu, 19 Dec 2019 11:29:24 +0100 Subject: [PATCH 2/2] ref: Changed comments --- src/utils/validation-errors-converter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/utils/validation-errors-converter.js b/src/utils/validation-errors-converter.js index 921d9ab..2aa371d 100644 --- a/src/utils/validation-errors-converter.js +++ b/src/utils/validation-errors-converter.js @@ -22,11 +22,11 @@ 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': { + 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':// this case use to be async + 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)