co.validation 2.2.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -354,6 +354,45 @@ describe('createValidation', () => {
|
|
|
354
354
|
errors: ['Must be a number']
|
|
355
355
|
});
|
|
356
356
|
});
|
|
357
|
+
it('supports minValue', () => {
|
|
358
|
+
expect((0, _.createValidation)({
|
|
359
|
+
type: 'minValue',
|
|
360
|
+
min: 1
|
|
361
|
+
})(0)).toEqual({
|
|
362
|
+
data: undefined,
|
|
363
|
+
errors: ['Must be at least 1']
|
|
364
|
+
});
|
|
365
|
+
expect((0, _.createValidation)({
|
|
366
|
+
type: 'minValue',
|
|
367
|
+
min: 1
|
|
368
|
+
})(-1)).toEqual({
|
|
369
|
+
data: undefined,
|
|
370
|
+
errors: ['Must be at least 1']
|
|
371
|
+
});
|
|
372
|
+
expect((0, _.createValidation)({
|
|
373
|
+
type: 'minValue',
|
|
374
|
+
min: 3,
|
|
375
|
+
getMessage: () => 'MinValue'
|
|
376
|
+
})(123)).toEqual({
|
|
377
|
+
data: 123,
|
|
378
|
+
errors: undefined
|
|
379
|
+
});
|
|
380
|
+
expect((0, _.createValidation)({
|
|
381
|
+
type: 'minValue',
|
|
382
|
+
min: 233,
|
|
383
|
+
getMessage: () => 'MinValue'
|
|
384
|
+
})(123)).toEqual({
|
|
385
|
+
data: undefined,
|
|
386
|
+
errors: ['MinValue']
|
|
387
|
+
});
|
|
388
|
+
expect((0, _.createValidation)({
|
|
389
|
+
type: 'minValue',
|
|
390
|
+
min: 333
|
|
391
|
+
})(22)).toEqual({
|
|
392
|
+
data: undefined,
|
|
393
|
+
errors: ['Must be at least 333']
|
|
394
|
+
});
|
|
395
|
+
});
|
|
357
396
|
it('supports string', () => {
|
|
358
397
|
expect((0, _.createValidation)({
|
|
359
398
|
type: 'string',
|
|
@@ -482,6 +521,12 @@ describe('createValidation', () => {
|
|
|
482
521
|
data: undefined,
|
|
483
522
|
errors: ['Invalid email format']
|
|
484
523
|
});
|
|
524
|
+
expect((0, _.createValidation)({
|
|
525
|
+
type: 'email'
|
|
526
|
+
})('email.@mail.com')).toEqual({
|
|
527
|
+
data: undefined,
|
|
528
|
+
errors: ['Invalid email format']
|
|
529
|
+
});
|
|
485
530
|
});
|
|
486
531
|
it('supports alphanumeric', () => {
|
|
487
532
|
expect((0, _.createValidation)({
|
package/lib/validators.js
CHANGED
|
@@ -84,10 +84,10 @@ exports.number = number;
|
|
|
84
84
|
const minValue = ({
|
|
85
85
|
min,
|
|
86
86
|
getMessage
|
|
87
|
-
}) => value => value && value < min ? {
|
|
87
|
+
}) => value => !isNaN(value) && Number(value) < min ? {
|
|
88
88
|
errors: (0, _messageProcessor.default)(getMessage, `##minValue`, string => string.replace(/{min}/g, min), min)
|
|
89
89
|
} : {
|
|
90
|
-
data: value
|
|
90
|
+
data: Number(value)
|
|
91
91
|
};
|
|
92
92
|
|
|
93
93
|
exports.minValue = minValue;
|
|
@@ -95,17 +95,18 @@ exports.minValue = minValue;
|
|
|
95
95
|
const maxValue = ({
|
|
96
96
|
max,
|
|
97
97
|
getMessage
|
|
98
|
-
}) => value => value && value > max ? {
|
|
98
|
+
}) => value => !isNaN(value) && Number(value) > max ? {
|
|
99
99
|
errors: (0, _messageProcessor.default)(getMessage, `##maxValue`, string => string.replace(/{max}/g, max), max)
|
|
100
100
|
} : {
|
|
101
|
-
data: value
|
|
101
|
+
data: Number(value)
|
|
102
102
|
};
|
|
103
103
|
|
|
104
104
|
exports.maxValue = maxValue;
|
|
105
|
+
const emailRegex = /^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
|
|
105
106
|
|
|
106
107
|
const email = ({
|
|
107
108
|
getMessage
|
|
108
|
-
}) => value => value &&
|
|
109
|
+
}) => value => value && !emailRegex.test(value) ? {
|
|
109
110
|
errors: (0, _messageProcessor.default)(getMessage, '##email')
|
|
110
111
|
} : {
|
|
111
112
|
data: value
|