mirror of
https://github.com/matt-fidd/stratos.git
synced 2026-01-01 20:39:28 +00:00
Added new validation type 'date' to validator module
This commit is contained in:
@@ -233,6 +233,55 @@ describe('validate', () => {
|
||||
}).toThrow('Invalid');
|
||||
});
|
||||
|
||||
test('Valid date validation', () => {
|
||||
const body = {
|
||||
name: 'Bob',
|
||||
message: 'Hi Jim!',
|
||||
date: '01/02/2004'
|
||||
};
|
||||
|
||||
const fields = [
|
||||
'name',
|
||||
'message',
|
||||
'date'
|
||||
];
|
||||
|
||||
const validation = {
|
||||
date: 'date'
|
||||
};
|
||||
|
||||
const result = validator.validate(body, fields, validation);
|
||||
|
||||
expect(result).toBeObject();
|
||||
expect(result).toContainKey('fields');
|
||||
expect(result.fields.get('date')).toEqual({
|
||||
raw: body.date,
|
||||
date: new Date(body.date)
|
||||
});
|
||||
});
|
||||
|
||||
test('Invalid date validation', () => {
|
||||
const body = {
|
||||
name: 'Bob',
|
||||
message: 'Hi Jim!',
|
||||
date: 'Jeffery'
|
||||
};
|
||||
|
||||
const fields = [
|
||||
'name',
|
||||
'message',
|
||||
'date'
|
||||
];
|
||||
|
||||
const validation = {
|
||||
date: 'date'
|
||||
};
|
||||
|
||||
expect(() => {
|
||||
validator.validate(body, fields, validation);
|
||||
}).toThrow('Invalid');
|
||||
});
|
||||
|
||||
test('Invalid validation type', () => {
|
||||
const body = {
|
||||
name: 'Bob',
|
||||
|
||||
@@ -83,6 +83,18 @@ function validate(body, fields, validation = {}) {
|
||||
fieldsMap.get(checkOpts[1])
|
||||
);
|
||||
break;
|
||||
case 'date': {
|
||||
const raw = fieldsMap.get(checkOpts);
|
||||
const obj = new Date(raw);
|
||||
|
||||
valid = !isNaN(obj.getTime());
|
||||
|
||||
fieldsMap.set(checkOpts, {
|
||||
raw: raw,
|
||||
date: obj
|
||||
});
|
||||
break;
|
||||
}
|
||||
default:
|
||||
throw new Error('Invalid validation type');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user