From 09a323c878e338750bd74bd489d66ebb4bef3afb Mon Sep 17 00:00:00 2001 From: siddick Date: Thu, 17 Dec 2015 12:17:38 +0530 Subject: [PATCH 1/3] Disable aboutEarly to validate all rules --- lib/validate.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/validate.js b/lib/validate.js index 89f2374..2c34a1a 100644 --- a/lib/validate.js +++ b/lib/validate.js @@ -95,7 +95,7 @@ function validate(checkStyleFile, specFile, callback) { function(spec, checkStyle, callback) { return [spec, getSchema(checkStyle), callback]; }).spread(function(spec, schema, callback) { - return Joi.validate(spec, schema); + return Joi.validate(spec, schema, { abortEarly: false }); }).then(function(result) { callback(null, result); }).catch(function(e) { From 8b1579515f0b6d0a49fef7468350757300598b8f Mon Sep 17 00:00:00 2001 From: siddick Date: Thu, 17 Dec 2015 14:37:49 +0530 Subject: [PATCH 2/3] Added tag validation --- lib/validate.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/validate.js b/lib/validate.js index 2c34a1a..5ed1d41 100644 --- a/lib/validate.js +++ b/lib/validate.js @@ -83,6 +83,14 @@ function getSchema(checkStyle) { })) })) ), + tags: Joi.array().items(Joi.object().keys({ + name: joiRegex(tagConvention), + description: Joi.string(), + externalDocs: Joi.object().keys({ + description: Joi.string(), + url: Joi.string() + }) + })), parameters: Joi.object().pattern(/.*/, Joi.object().keys(parameterKeys)), definitions: Joi.any() }); From 2aa30c1cb9e1c366bbe2686457d0c9edcefde234 Mon Sep 17 00:00:00 2001 From: siddick Date: Tue, 29 Dec 2015 14:34:51 +0530 Subject: [PATCH 3/3] Fixed unknown and aboutEarly --- lib/validate.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/validate.js b/lib/validate.js index 5ed1d41..429965c 100644 --- a/lib/validate.js +++ b/lib/validate.js @@ -98,12 +98,18 @@ function getSchema(checkStyle) { return schema; } -function validate(checkStyleFile, specFile, callback) { +function validate(checkStyleFile, specFile, options, callback) { + if (_.isFunction(options)) { + callback = options; + options = {}; + } + options = _.extend({ abortEarly: false, allowUnknown: true }, options); + Promise.join(getSpecPromise(specFile), getCheckStylePromise(checkStyleFile), callback, function(spec, checkStyle, callback) { return [spec, getSchema(checkStyle), callback]; }).spread(function(spec, schema, callback) { - return Joi.validate(spec, schema, { abortEarly: false }); + return Joi.validate(spec, schema, options); }).then(function(result) { callback(null, result); }).catch(function(e) {