From 514a51ffe9d382fae8a00ab46a98dc817f5c05ec Mon Sep 17 00:00:00 2001 From: "Daniel A.C. Martin" Date: Sun, 10 Jul 2016 17:00:26 +0100 Subject: [PATCH] Require special validator before processing Will only perform the extra processing when the 'input-date' validator is present in the array of validators for the field. --- lib/date-controller.js | 3 ++- test/spec/spec.date-controller.js | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/date-controller.js b/lib/date-controller.js index a08c389..961be20 100644 --- a/lib/date-controller.js +++ b/lib/date-controller.js @@ -13,6 +13,7 @@ util.inherits(DateController, Parent); DateController.prototype.process = function process(req) { _.each(this.options.fields, function processEach(v, k) { if ( + _.includes(v.validate, 'input-date') && (undefined !== req.body[k + '-year']) && (undefined !== req.body[k + '-month']) && (undefined !== req.body[k + '-day']) @@ -21,7 +22,7 @@ DateController.prototype.process = function process(req) { var processField = function processField(key, validators) { this.options.fields[key] = { - validate: childValidators.concat(validators), + validate: _.union(childValidators, validators), dependent: v.dependent }; diff --git a/test/spec/spec.date-controller.js b/test/spec/spec.date-controller.js index 8dd763a..66ad66c 100644 --- a/test/spec/spec.date-controller.js +++ b/test/spec/spec.date-controller.js @@ -37,7 +37,7 @@ describe('Date Controller', function () { beforeEach(function () { key = 'date-field'; options = { template: 'index', fields: {} }; - options.fields[key] = {} + options.fields[key] = { validate: ['input-date'] } form = new DateController(options); sinon.stub(form, 'get').yields(); sinon.stub(form, 'post').yields(); @@ -283,7 +283,7 @@ describe('Date Controller', function () { beforeEach(function () { key = 'date-field'; options = { template: 'index', fields: {} }; - options.fields[key] = { validate: ['required'] } + options.fields[key] = { validate: ['required', 'input-date'] } form = new DateController(options); sinon.stub(form, 'get').yields(); sinon.stub(form, 'post').yields();