From e99aa91f9f0579bbd6ee13c78183aaa42b154ffb Mon Sep 17 00:00:00 2001 From: orangemug Date: Wed, 1 Apr 2015 14:23:30 +0100 Subject: [PATCH 1/5] Fix for dates and _.isEmpty. --- lib/rules.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/rules.js b/lib/rules.js index 2b74e9b..177ed62 100644 --- a/lib/rules.js +++ b/lib/rules.js @@ -265,7 +265,7 @@ function isValueEmpty(value) { if (_.isUndefined(value)) { return true; } - var canUseIsEmpty = _.isString(value) || _.isArray(value) || _.isObject(value) || false; + var canUseIsEmpty = _.isString(value) || _.isArray(value) || (_.isObject(value) && !_.isDate(value)) || false; if (canUseIsEmpty) { return _.isEmpty(value); } From 9b616c82603fb045325c12e1d930e181dcc6c511 Mon Sep 17 00:00:00 2001 From: orangemug Date: Tue, 28 Apr 2015 10:56:16 +0100 Subject: [PATCH 2/5] Added failing date defaulting test --- test/bugs.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 test/bugs.js diff --git a/test/bugs.js b/test/bugs.js new file mode 100644 index 0000000..7e2848e --- /dev/null +++ b/test/bugs.js @@ -0,0 +1,19 @@ +describe("bugs", function() { + /*jshint expr:true*/ + var schemajs = (typeof window === 'undefined') ? require('../schema') : window.schema; + var expect = (typeof window === 'undefined') ? require('chai').expect : window.chai.expect; + + it("Dates defaulting when not empty (#13)", function() { + var date1 = new Date; + var date2 = new Date(1985, 12); + var schema = schemajs.create({ + dateTime: {type:'date', 'default': date1} + }); + + var input1 = schema.validate({}); + var input2 = schema.validate({dateTime: date2}); + + expect(input1.data.dateTime).to.equal(date1); + expect(input2.data.dateTime).to.equal(date2); + }); +}); From 3185b12083f44af936644064b1950fc15cf1d21c Mon Sep 17 00:00:00 2001 From: orangemug Date: Tue, 28 Apr 2015 12:08:46 +0100 Subject: [PATCH 3/5] Added example. --- README.md | 6 +++++- examples/cdn.html | 30 ++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 examples/cdn.html diff --git a/README.md b/README.md index 1e2ef17..618a5e8 100644 --- a/README.md +++ b/README.md @@ -200,9 +200,13 @@ schema.properties.notIn = function(value, badwords) } ``` + +## Browser usage +You can use it in the browser by using [browserify](http://browserify.org/), however if that's too much work just use . There is also an example + + # ideas - - make it work in the browser for client side validation - strict mode, dissallowing extra parameters from being passed in - dependency property making one parameters existance depend on another - more types (phone numbers, credit card, ip address) diff --git a/examples/cdn.html b/examples/cdn.html new file mode 100644 index 0000000..e401e52 --- /dev/null +++ b/examples/cdn.html @@ -0,0 +1,30 @@ + + + + https://wzrd.in - schemajs example + + +

See the console and view the source for details

+ + + + + + From 7937ea7c2ec8c5918f4a046e99ce4427649bded0 Mon Sep 17 00:00:00 2001 From: orangemug Date: Mon, 4 May 2015 08:35:46 +0100 Subject: [PATCH 4/5] Bugs now in individual files as per PR comments --- test/{bugs.js => bugs/13-default-date.js} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{bugs.js => bugs/13-default-date.js} (100%) diff --git a/test/bugs.js b/test/bugs/13-default-date.js similarity index 100% rename from test/bugs.js rename to test/bugs/13-default-date.js From a59d3cff01e3f23542d79e054c195adf5b06d98e Mon Sep 17 00:00:00 2001 From: orangemug Date: Mon, 4 May 2015 08:37:23 +0100 Subject: [PATCH 5/5] Added link to PR in code. --- test/bugs/13-default-date.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/bugs/13-default-date.js b/test/bugs/13-default-date.js index 7e2848e..4bb3f8b 100644 --- a/test/bugs/13-default-date.js +++ b/test/bugs/13-default-date.js @@ -3,6 +3,7 @@ describe("bugs", function() { var schemajs = (typeof window === 'undefined') ? require('../schema') : window.schema; var expect = (typeof window === 'undefined') ? require('chai').expect : window.chai.expect; + // it("Dates defaulting when not empty (#13)", function() { var date1 = new Date; var date2 = new Date(1985, 12);