1
0
mirror of https://github.com/matt-fidd/stratos.git synced 2026-01-01 22:59:28 +00:00

Added new validation type 'date' to validator module

This commit is contained in:
2022-03-08 00:00:52 +00:00
parent be08c58afa
commit 34c6478699
2 changed files with 61 additions and 0 deletions

View File

@@ -233,6 +233,55 @@ describe('validate', () => {
}).toThrow('Invalid'); }).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', () => { test('Invalid validation type', () => {
const body = { const body = {
name: 'Bob', name: 'Bob',

View File

@@ -83,6 +83,18 @@ function validate(body, fields, validation = {}) {
fieldsMap.get(checkOpts[1]) fieldsMap.get(checkOpts[1])
); );
break; 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: default:
throw new Error('Invalid validation type'); throw new Error('Invalid validation type');
} }