Skip to content

Commit

Permalink
Merge pull request #46 from scottnath/hotfix/val
Browse files Browse the repository at this point in the history
remove old validation
  • Loading branch information
Snugug authored Sep 13, 2016
2 parents 19ed16c + a595809 commit 82d4cdc
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 40 deletions.
23 changes: 4 additions & 19 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,30 +19,15 @@ module.exports = {
datetimeValidation: validation,
},
inputs: {
datetimeDate: {
datetime: {
validation: {
function: 'datetimeValidation',
on: 'blur',
},
label: 'Date',
type: 'date',
placeholder: 'Datetime',
settings: {
empty: true,
},
},
datetimeTime: {
validation: {
function: 'datetimeValidation',
on: 'blur',
},
label: 'Time',
type: 'time',
placeholder: 'Datetime',
settings: {
empty: true,
},
type: 'datetime-local',
placeholder: new Date().toLocaleDateString(),
},
},
html: '<label for="{{datetimeDate.id}}">{{datetimeDate.label}}</label><input type="{{datetimeDate.type}}" id="{{datetimeDate.id}}" name="{{datetimeDate.name}}" value="{{datetimeDate.value}}" placeholder="{{datetimeDate.placeholder}}" /><label for="{{datetimeTime.id}}">{{datetimeTime.label}}</label><input type="{{datetimeTime.type}}" id="{{datetimeTime.id}}" name="{{datetimeTime.name}}" value="{{datetimeTime.value}}" placeholder="{{datetimeTime.placeholder}}" />',
html: '<label for="{{datetime.id}}">{{datetime.label}}</label><input type="{{datetime.type}}" id="{{datetime.id}}" name="{{datetime.name}}" value="{{datetime.value}}" placeholder="{{datetime.placeholder}}" />',
};
8 changes: 5 additions & 3 deletions lib/validation.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,12 @@
*
* @module datetimeValidation
*/
const isDate = require('validator/lib/isDate');

module.exports = function datetimeValidation(input, settings) {
if (input.target.value === '' && !settings.target.empty) {
return `${input.target.name} cannot be left blank!`;

module.exports = function datetimeValidation(input) {
if (input.target.value && !isDate(input.target.value)) {
return `${input.target.name} must be a date!`;
}

return true;
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@
"Rachel White <[email protected]>"
],
"license": "Apache-2",
"dependencies": {},
"dependencies": {
"validator": "^5.7.0"
},
"devDependencies": {
"ava": "^0.14.0",
"coveralls": "^2.11.9",
Expand Down
71 changes: 54 additions & 17 deletions tests/validation.js
Original file line number Diff line number Diff line change
@@ -1,37 +1,74 @@
import test from 'ava';
import validation from '../lib/validation';

const empty = {
target: {
name: 'empty',
value: '',
},
};

const input = {
target: {
name: 'datetime',
value: 'foo bar baz',
name: 'good',
value: '1972-08-21',
},
};

const bad = {
target: {
name: 'bad',
value: '1972-08-foo',
},
all: {
datetime: 'foo bar baz',
};

const time = {
target: {
name: 'with time',
value: '1972-08-21T13:00',
},
};

const settings = {
const timeSpace = {
target: {
empty: false,
name: 'space in time',
value: '1972-08-21 13:00',
},
all: {
datetime: {
empty: false,
},
};

const reverse = {
target: {
name: 'reverse time to date',
value: '13:00 1972-08-21',
},
};

// Empty input
test('empty input', t => {
t.true(validation(empty), 'Empty input returns true');
});

// Valid input
// Valid date-only input
test('valid input', t => {
t.true(validation(input, settings), 'Valid input returns true');
t.true(validation(input), 'Valid input returns true');
});

// Invalid input
test('validate correct input', t => {
const ip = input;
ip.target.value = '';
// Bad input
test('bad input', t => {
t.is(validation(bad), 'bad must be a date!', 'Bad input returns string');
});

// Valid date/time input
test('valid with time input', t => {
t.true(validation(time), 'Valid input returns true');
});

// Valid date/time input
test('valid with time input', t => {
t.true(validation(timeSpace), 'Valid input returns true');
});

t.is(validation(ip, settings), 'datetime cannot be left blank!', 'Return string if not valid');
// Revers date/time input
test('reverse input', t => {
t.true(validation(reverse), 'Reverse time/date input returns true');
});

0 comments on commit 82d4cdc

Please sign in to comment.